[英]Calculating stock mutations in sql
我想計算出庫=每天離開倉庫的產品數量。 如果我運行這些查詢,我可以看到sql正在以某種方式計數數量,但我不明白為什么。 有人可以看到問題嗎? 如何避免這種情況?
SELECT readYesterday.ArticleCode,
MAX(readToday.ArticleCode) AS ArticleCodeToday,
readYesterday.ReportDate,
SUM(ISNULL(readToday.TotalStock, 0)) AS TotalStockToday,
SUM(readYesterday.TotalStock) AS TotalStockYesterday,
SUM(readYesterday.TotalStock - ISNULL(readToday.TotalStock, 0)) AS Outbound
FROM ArticleReads readYesterday
LEFT JOIN ArticleReads readToday ON readToday.ArticleCode = readYesterday.ArticleCode
AND readToday.InboundDossier = readYesterday.InboundDossier
AND readToday.ReportDate = DATEADD(DAY, 1, readYesterday.ReportDate)
WHERE readYesterday.ArticleCode ='ART01234'
AND readToday.ReportDate <> Convert(date, getdate())
AND readYesterday.ReportDate = '2018-04-26'
GROUP BY readYesterday.ArticleCode,
readYesterday.ReportDate
ORDER BY ReportDate ASC
SELECT *
FROM ArticleReads readYesterday
WHERE readYesterday.ArticleCode = 'ART01234'
AND readYesterday.ReportDate = '2018-04-26'
SELECT *
FROM ArticleReads readYesterday WHERE readYesterday.ArticleCode = 'ART01234'
AND readYesterday.ReportDate = '2018-04-27'
在連接昨天和今天的表時,必須確保您已連接主鍵。 在您的情況下,您正在使用文章代碼,inbounddossieur和reportdate + 1; 但是,由於每行有2行,沒有任何區別,因此聯接將返回4行! 您需要添加一個連接條件,該條件唯一地指定每一行-也許是位置碼?
and readToday.LocationCode=readYesterday.LocationCode
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.