小编Rob*_*ert的帖子

为行组添加总量列

我有一个 Items 表和一个 Inventory 表。一个项目可以属于多个库存记录。我正在尝试返回所有库存记录的列表,但在新列中包含它们的数量。例如:

项目

ItemID     ItemDescription
103        Headphones
115        Speakers
230        Wireless Adapter
275        20' Network Cable
Run Code Online (Sandbox Code Playgroud)

存货

InventoryID        ItemID        WarrantyDate       Status
1                  103           12/22/2010         Available
2                  103           05/15/2012         Available
3                  103           02/24/2015
4                  275           01/01/2010
5                  275           01/01/2011
Run Code Online (Sandbox Code Playgroud)

如果我尝试COUNT使用 ItemID 和GROUP BYItemID,如下所示:

SELECT ItemID, COUNT(ItemID) AS Quantity
FROM Inventory
GROUP BY ItemID
Run Code Online (Sandbox Code Playgroud)

我得到:

ItemID  Quantity
103     3
275     2        
Run Code Online (Sandbox Code Playgroud)

但我真正想要的是:

InventoryID        ItemID        WarrantyDate       Status       Quantity
1                  103           12/22/2010         Available    3
2                  103           05/15/2012 …
Run Code Online (Sandbox Code Playgroud)

sql-server aggregate sql-server-2012 window-functions

3
推荐指数
1
解决办法
843
查看次数

带有开始和结束事务的光标

我有以下脚本,该脚本在循环的第二次迭代中保持不变。

BEGIN
BEGIN TRY
        BEGIN TRANSACTION
        DECLARE @itemID int

        DECLARE LoopCursor CURSOR FOR
        SELECT DISTINCT i.ItemID
        FROM Inventory i
        INNER JOIN Items it ON i.ItemID = it.ItemID
        WHERE i.ItemID IN (226, 231, 232, 233, 234, 235, 245, 247 ,249 ,250 ,253 ,254 ,255 ,257 ,258 ,268 ,270 ,271 ,273 ,286 ,287 ,291 ,293 ,299 ,303 ,304,
                            305, 306, 307, 308, 310, 311, 312, 313, 314, 316, 322, 323, 324, 331, 332, 333, 334, 335, 338, 339, 340, 341, 342, 343, …
Run Code Online (Sandbox Code Playgroud)

cursors sql-server-2012

1
推荐指数
1
解决办法
7280
查看次数