如何使用SQL Server检索表中更新的记录数?

时间:2016-09-29 08:06:45

标签: sql sql-server tsql sqltransaction

我的任务是显示店主[用户ID]在过去一小时内交付的物品数量。以下是表格设计[订购父表] [订购子表]

订购父表:

enter image description here

子表:

enter image description here

使用条形码阅读器扫描物品,一旦扫描物品,它就会在数据库中更新,一旦它完成更新修改后的图章的订单。

如何处理这种情况?我是否需要更改数据库设计,还是可以使用当前设计来获取结果集?

我的输出:在前端,

  

最后一小时计数= 10

2 个答案:

答案 0 :(得分:2)

假设列[Item Placed]将提供将要交付的项目数。

SELECT SUM([Item Placed]) 
FROM [Order parent table] OP
  JOIN [Order child table] OC ON OP.ID=OC.OrderID
WHERE OP.OrderStatus='D'  
   AND DATEDIFF(MINUTE, OP.[Order Modified Timestamp], GETDATE()) <= 60
   AND [user Id] = 1 --mention the user id here
  --AND OC.[Item Status]='D' --Apply this filter with valid status if you require child table stus

答案 1 :(得分:0)

这可能有所帮助:

SELECT  ord.[User Id] ,
        SUM(ISNULL(oc.ItemCount, 0)) Items
FROM    [Order] ord
        LEFT JOIN ( SELECT  [Order ID] ,
                            COUNT(DISTINCT [Item Name]) ItemCount
                    FROM    [OrderChild] oc
                    GROUP BY [Order ID]
                  ) oc ON ord.[ID] = oc.[Order ID]
WHERE   [Order Status] = 'D'
        AND DATEDIFF(MINUTE, [Order Modified Timestamp], GETDATE()) <= 60
GROUP BY ord.[User Id];