我在做一個PIVOT命令。我的行標籤是日期字段。我的列是[NY],[TX]等位置。源數據中的某些值爲空,但是一旦它被旋轉,我想用日期順序中的最後一個已知值「填充」這些空值。旋轉時填充值「向下」
這就是如果列NY的值爲2010年1月1日,但爲2010年1月1日爲空我想填寫從2010年1月1日到2010年1月2日的值,以及任何其他空值日期如下,直到另一個值已經存在。所以基本上我用填充每個列的數據的關閉日期的相同數據來填補空缺。
我的樞查詢我公司目前擁有的一個例子是:
SELECT ReadingDate, [NY],[TX],[WI]
FROM
(SELECT NAME As 'NodeName',
CAST(FORMAT(readingdate, 'M/d/yyyy') as Date) As 'ReadingDate',
SUM(myvalue) As 'Value'
FROM MyTable) as SourceData
PIVOT (SUM(Value) FOR NodeName IN ([NY],[TX],[WI])) as PivotTable
Order BY ReadingDate
但我不知道如何做到這一點「補降」,以填補空值
示例源數據
1/1/2010, TX, 1
1/1/2010, NY, 5
1/2/2010, NY null
1/1/2010, WI, 3
1/3/2010, WI, 7
...
請注意,如果1/3沒有WI,那麼1/2或NY會導致數據透視結果爲空。還有一個空記錄也導致null。對於紐約一旦樞軸1/2需要填寫5,因爲它是最後一個已知的價值,但1/3也需要歸檔與5一旦旋轉,因爲該記錄甚至不存在,但當旋轉它會顯示作爲空值,因爲它不存在,但另一個位置有記錄。
您可以爲MyTable的基本架構? –
NAME是varchar,readingdate是varchar,myvalue是數字 – user441521
您使用的是哪個版本的SQL Server?而且,你能提供一個源數據的例子嗎? –