我正在創建Crystal Report的過程中,但卡住了。我有一個包含20個項目的表格(Numbers),3個欄目(項目編號,每訂單價格(PPO),每件訂單(CPO))。報告應該查看我們每個商店的所有銷售訂單,按項目打印出多少收入損失或獲得的收入,如果他們在CPO下或其下面訂購的,我遇到的問題是有些商店沒有訂購20件商品中的一些,但我仍然需要這顯示了在報告收入丟了,我知道這是主要由左實現從數字表連接查詢我現在是:。Crystal Reports查詢 - 沒有得到正確的結果
SELECT x.*, z.*
FROM NUMBERS x
LEFT OUTER JOIN (
SELECT
BPCUSTOMER.BPCPYR_0 AS PayingBp,
BPCUSTOMER.BPCNUM_0 AS BpNumber,
ITMMASTER.ITMREF_0 AS ITMREF,
SUM(SINVOICED.NETPRI_0) AS NETPRI,
SUM(SINVOICED.QTY_0) AS Quantity,
MAX(SINVOICED.ITMDES1_0) AS DES,
MAX(BPADDRESS.CTY_0) AS BpCity,
MAX(BPADDRESS.SAT_0) AS BpState
FROM SINVOICED SINVOICED
INNER JOIN BPCUSTOMER ON SINVOICED.BPCINV_0 = BPCUSTOMER.BPCNUM_0
INNER JOIN ITMMASTER ON SINVOICED.ITMREF_0 = ITMMASTER.ITMREF_0
INNER JOIN BPADDRESS ON SINVOICED.BPCINV_0 = BPADDRESS.BPANUM_0
INNER JOIN BPCUSTOMER_PAY ON BPCUSTOMER.BPCINV_0 = BPCUSTOMER_PAY.BPCNUM_0
WHERE (ITMMASTER.TSICOD_2 = N'YE1')
AND (BPCUSTOMER.BPCPYR_0 > N'10110')
GROUP BY BPCUSTOMER.BPCPYR_0, BPCUSTOMER.BPCNUM_0, ITMMASTER.ITMREF_0
) z ON x.[Item #] = z.ITMREF
與此查詢,我沒有得到任何的NULL信息如果我將一個特定的商店添加到WHERE部分,它會得到正確的結果,但僅限於那個特定商店我們有超過300個商店,所以它沒有任何意義f或者我一次運行一個商店。我猜測問題是,當爲所有商店運行它時,每件商品都至少訂購了一次,因此它不顯示空字段。
希望這不是太混亂。有什麼建議麼?
他們希望報告顯示每個項目按支付bp和商店編號分組。這是一個SQL數據庫,但我從Crystal Reports中獲取了查詢,並試圖操作它以獲得正確的結果。
但我有一個請求更改。他們現在只想看看完全沒有購買的物品。我仍然試圖用NUMBERS表中的左外連接來完成此操作,並且仍然存在相同的問題。查詢我現在已經是:
SELECT "ZP_ITMMASTER"."ITMREF_0", "ZP_ITMMASTER"."ITMDES1_0", "ZP_NUMBERS"."Avg # Cases per order", "ZP_NUMBERS"."Price per order", "ZP_SDELIVERY"."BPCPYR_0", "ZP_SDELIVERY"."BPCORD_0", "ZP_NUMBERS"."Item #", "ZP_ITMMASTER"."TSICOD_2"
FROM (("master"."dbo"."ZP_NUMBERS" "ZP_NUMBERS" LEFT OUTER JOIN "master"."dbo"."ZP_SDELIVERYD" "ZP_SDELIVERYD" ON "ZP_NUMBERS"."Item #"="ZP_SDELIVERYD"."ITMREF_0") INNER JOIN "master"."dbo"."ZP_SDELIVERY" "ZP_SDELIVERY" ON (("ZP_SDELIVERYD"."SDHNUM_0"="ZP_SDELIVERY"."SDHNUM_0") AND ("ZP_SDELIVERYD"."SOHNUM_0"="ZP_SDELIVERY"."SOHNUM_0")) AND ("ZP_SDELIVERYD"."STOFCY_0"="ZP_SDELIVERY"."STOFCY_0")) INNER JOIN "master"."dbo"."ZP_ITMMASTER" "ZP_ITMMASTER" ON "ZP_SDELIVERYD"."ITMREF_0"="ZP_ITMMASTER"."ITMREF_0"
WHERE "ZP_ITMMASTER"."TSICOD_2"=N'YE1'
ORDER BY "ZP_SDELIVERY"."BPCPYR_0", "ZP_SDELIVERY"."BPCORD_0", "ZP_ITMMASTER"."ITMREF_0"
謝謝!
爲什麼在「BPCUSTOMER.BPCPYR_0」和「BPCUSTOMER.BPCNUM_0」上進行分組,有沒有特別的原因?看起來你只想要'ITMMASTER.ITMREF_0',因爲它是唯一的連接字段,並且是列表中的最後一個字段。 – craig
什麼是您的數據庫?不確定這是否是Crystal問題。 – paulmelnikow