2016-09-29 51 views
1

我的任務是顯示店主[用戶ID]最近一小時交付的物品的數量。下面是表的設計[訂購父表] [在線訂購子表]如何檢索使用SQL Server在表中更新的記錄數?

訂購父表:

enter image description here

子表:

enter image description here

項目是通過使用條碼掃描讀取器,一旦掃描它就更新數據庫,一旦它完成了它更新修改後的郵票的命令。

如何處理這種情況?我是否需要更改數據庫設計,還是可以使用當前設計來獲取結果集?

我的輸出:在前端,

持續一個小時計數= 10

+1

您能否將結果更新爲文字 – TheGameiswar

回答

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 
+0

獲得結果集的項目交付,但我正在尋找更深入。可以和你聊天嗎? – Anjali

+0

sure .. but .. ..沒有用過.. .. :) –

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]; 
+0

訂單狀態在此不是必需的,我的問題是他在最近一小時內交付了多少物品。 – Anjali

+1

刪除[訂單狀態] ='D'過濾器來實現你想從我的查詢中得到的東西。結果將是每個用戶在您的[訂單]表 – Yared

相關問題