簡體   English   中英

SQL語句未返回預期的確切結果

[英]SQL statement not returning exact results expected

首先,我要說我不是SQL編碼專家。 我以為我有這個查詢,直到我將其放入SSRS並注意到幾乎所有情況下,“消費”值都翻了一番。 我不知道怎么了。 我已更改聯接,但從未獲得預期的結果。 這是查詢。

SELECT  a.No_
       ,Sum(b.Consumption) as Consumption
       ,sum(c.[Item Ledger Entry Quantity]) as 'Total Qty'
       ,sum(e.Amount) as 'Total Amount'
FROM Crest$Item a
INNER JOIN (SELECT  [Item No_] INo, Sum(Quantity) Consumption
                     FROM            [Crest$Item Ledger Entry]
                     WHERE        [Entry Type] = 5 and [Posting Date]      Between '2017-01-01' and '2017-01-31'
                     GROUP BY [Item No_]) b on a.No_ = b.INo
INNER JOIN [Crest$Value Entry] c ON a.No_ = c.[Item No_] 
INNER JOIN [Crest$G_L - Item Ledger Relation] d on c.[Entry No_] = d.[Value Entry No_]
INNER JOIN [Crest$G_L Entry] e ON d.[G_L Entry No_] = e.[Entry No_]
WHERE e.[G_L Account No_] = '55130'
       and c.[Posting Date] between '2017-01-01' and '2017-01-31'
group by a.No_
order by a.No_

當返回數據時,我在No_,Total Qty和Total Amount列中有正確的數據,但是第二列'consumption'是不應該是它的兩倍。

我沒有看到這個問題。 謝謝。

如果刪除所有sum(...)函數並僅返回原始數據並進行檢查,則可能導致問題的原因變得顯而易見。

如果沒有原始數據或架構,我的最佳猜測是,在所有這些條件下,最終都將基於對“ c”,“ d”或“ e”的聯接而返回“ b”中的2個。您說“多於不多”的事實使我認為這是正在發生的事情。

修復它完全取決於問題所在。 有時候這可能真的很簡單(也許您只需要在某些列等於特定值的情況下獲得“ c”),或者需要退后一步,看看它們是如何構成的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM