我有一个包含以下列的销售表:
[Date], [StoreID], [ItemID], [AmountInDollars]. for example:
06052012 | 1 | 111 | 2.35
06052012 | 1 | 222 | 5.00
06052012 | 2 | 333 | 9.99
...
01052012 | 30 | 999 | 3.98
我希望能够以这种方式选择数据:
[Date] | [StoreID] | totalSalesForTheDay | TopSellingItemID1 | TopSellingItemID2 | TopSellingItemID3
我正在尝试以下方法:
select date,
storeID,
sum(AmountInDollars),
ItemID
from sales
group by date,
storeID,
ItemID
这提供了当天销售的所有ItemID ...... 我怎么能够 1.仅限3个顶级项目 2.水平显示相同行中的3个顶部项目
谢谢!
根据要求 - 数据样本。这是一张原始表
Date | StoreID | ItemID | AmountInDollars
06052012 | 1 | 111 | 2.35
06052012 | 1 | 222 | 5.00
06052012 | 1 | 444 | 9.99
06052012 | 1 | 222 | 5.00
06052012 | 1 | 444 | 9.99
06052012 | 1 | 333 | 9.99
06052012 | 1 | 444 | 9.99
06052012 | 2 | 222 | 5.00
06052012 | 2 | 444 | 9.99
06052012 | 2 | 333 | 9.99
06052012 | 2 | 444 | 9.99
05052012 | 1 | 111 | 2.35
05052012 | 1 | 222 | 5.00
05052012 | 1 | 444 | 9.99
05052012 | 1 | 222 | 5.00
05052012 | 1 | 444 | 9.99
05052012 | 1 | 333 | 9.99
05052012 | 1 | 444 | 9.99
05052012 | 2 | 222 | 5.00
05052012 | 2 | 444 | 9.99
05052012 | 2 | 333 | 9.99
05052012 | 2 | 444 | 9.99
将导致:
Date | StoreID |totalsales | TopSellingItemID1 | TopSellingItemID2 | TopSellingItemID3
06052012 | 1 | 52.31 | 444 | 222 | 111
06052012 | 2 | 34.97 | 444 | 222 | 333
05052012 | 1 | 52.31 | 444 | 222 | 111
05052012 | 2 | 34.97 | 444 | 222 | 111
...谢谢