我有一個客戶表和表的OrderDetail的 客戶ID是在表的OrderDetail一個foriegn鍵(我這裏簡化)幫助與SQL - 的GroupBy和多聚集
的的OrderDetail表包含以下幾列 的OrderId 項目Id 客戶ID 尺寸
大小列可以採取LR 2.的md 3. SM下列值 1的任何一個
所以的OrderDetail表可能有以下記錄(我逗號分隔列)
的OrderId項目Id客戶編號尺寸
1,1,30,lr
1,1,30,md
1,1,30,sm
2,1,30,lr
2,1,30,md
3,1,30,lr
3,1,30,sm
4,1,30,lr
5,1,30,md
6,2,30,sm
7,3,30,md
8,3,30,lr
我想是一個非常有效的查詢(有上百萬條記錄在訂單的詳細信息表),其具有用於給定的客戶ID下面的輸出(30在這種情況下)
ItemId SizeLr SizeMd SizeSm
1 4 3 2
2 0 0 1
3 1 1 0
我使用用途通過查詢3組(每一個用於「LR」的查詢,「MD」和「sm」),並因此掃描表3次。
我正在尋找一個解決方案,掃描表剛剛就職。我認爲解決方案是在MSSQL 2008中使用新的分組集功能。但無論哪種方式,如果我希望有人能幫助我,那麼使用一次掃描就是一種解決方案。
編輯
實際輸出需要有從客戶表中的其他領域和Order Details表也是如此。這些其他字段不依賴於聚合。
例如
ItemName ItemId SizeLr SizeMd SizeSm
A 1 4 3 2
B 2 0 0 1
C 3 1 1 0
Totals 5 4 4
它會很好,如果我能得到總計爲每個尺寸列以及
是依賴於大小的訂單詳細信息表中的其他列。如果不是,請加上如何展示它們。 – 2010-12-13 12:13:45
我已更新問題以包含此信息。對不起,第一次更清晰。 – 2010-12-13 14:10:24