2
我在SQL中的FOR XML子句有问题。数据表中的数据以间隔为间隔(参见下面的示例),在截至目前的数据输出中,我获得了列中每个间隔的相同日期。用于xml构建问题的SQL
SQL表:
ID CTID dDate dtmInterval CO_Forecast AHT_Forecast
1 2 2015-10-13 08:00:00 5.05004 457.67751
2 2 2015-10-13 08:15:00 5.24004 457.67751
3 2 2015-10-13 08:30:00 4.49004 457.67751
4 2 2015-10-13 08:45:00 4.50004 457.67751
5 2 2015-10-13 09:00:00 5.65004 457.67751
我使用此代码在我的FOR XML子句:
SELECT TOP 1000
[ctID]
,[forecastData/date/day] = Day(dDate)
,[forecastData/date/month] = month(dDate)
,[forecastData/date/year] = year(dDate)
,[co_forecast] AS [forecastData/dailyData/contactsReceived]
,[AHT_Forecast] AS [forecastData/dailyData/averageAHT]
FROM [ProductionForecast].[dbo].[Forecast]
group by [co_forecast], [AHT_Forecast], [CTID], dDate
FOR XML PATH ('ctForecast'), ROOT ('forecastImport')
输出我得到的是以下几点:
<forecastImport>
<ctForecast>
<ctID>2</ctID>
<forecastData>
<date>
<day>13</day>
<month>10</month>
<year>2015</year>
</date>
<dailyData>
<contactsReceived>5.05004</contactsReceived>
<averageAHT>457.67751</averageAHT>
</dailyData>
</forecastData>
</ctForecast>
<ctForecast>
<ctID>2</ctID>
<forecastData>
<date>
<day>13</day>
<month>10</month>
<year>2015</year>
</date>
<dailyData>
<contactsReceived>5.24004</contactsReceived>
<averageAHT>457.67751</averageAHT>
</dailyData>
</forecastData>
</ctForecast>
一切钳开关闭正确的地方,但我连续获得96次相同的日期,哪些服务器谁需要此数据不能读取。
我希望它输出什么是以下几点:
<forecastImport>
<ctForecast>
<ctID>95</ctID>
<forecastData>
<date><day>01</day><month>11</month><year>2015</year></date>
<dailyData>
<contactsReceived>0</contactsReceived>
<averageAHT>0</averageAHT>
</dailyData>
</forecastData>
</ctForecast>
<ctForecast>
<ctID>95</ctID>
<forecastData>
<date><day>02</day><month>11</month><year>2015</year></date>
<dailyData>
<contactsReceived>594.81653</contactsReceived>
<averageAHT>387</averageAHT>
</dailyData>
</forecastData>
</ctForecast>
我已经尝试了很多不同的东西,现在我只看到一个答案,就是让一个存储过程运行起来,这将传输数据到没有dtminterval列的新表,但我想使用我已有的可用,这可能吗?
亲切的问候。
大,你发现自己的答案(upvoted这个......)。现在,您应该将自己的答案标记为已接受,以显示此问题已关闭...... Thx – Shnugo