【发布时间】:2013-11-14 14:56:34
【问题描述】:
以下查询用于从数据库中检索记录以显示在报告中。但是 SENOKO 和 EUNOS 列在每一行中显示 duplicate 总数。这似乎是 子查询未连接到主查询 导致未进行过滤。
SELECT whbal.customer, customer.imp_license_no, customer.psq_level,
(SELECT SUM(CONVERT(DECIMAL(8,3),(CONVERT(DECIMAL(8, 3), whbal.qty_good) + CONVERT(DECIMAL(8, 3), whbal.qty_slack)) * CONVERT(DECIMAL(8, 3), whbal.std_weight) / 1000))
FROM whbal WHERE warehouse='SKW') AS SENOKO
(SELECT SUM(CONVERT(DECIMAL(8,3),(CONVERT(DECIMAL(8, 3), whbal.qty_good) + CONVERT(DECIMAL(8, 3), whbal.qty_slack)) * CONVERT(DECIMAL(8, 3), whbal.std_weight) / 1000))
FROM whbal WHERE warehouse='EKW') AS EUNOS
FROM customer
INNER JOIN whbal ON whbal.customer=customer.customer AND whbal.date_create<=@date1
INNER JOIN stktype ON whbal.stock_type=stktype.stock_type
WHERE whbal.customer BETWEEN @cust1 AND @cust2 AND whbal.stock_type=@type
GROUP BY whbal.customer, customer.customer, customer.imp_license_no, customer.psq_level
结果:
有谁知道问题和解决方法,请评论和指导。 提前感谢并感谢。
【问题讨论】:
-
或者,数据对
warehouse = 'SKW'和warehouse = 'EKW'产生相同的结果。如果您提供一个小数据样本并显示结果,那将很有帮助,因为在所有列上都有一个表别名,包括warehouse。 -
@GordonLinoff 请参考我编辑的问题。 EUNOS 柱位于 SENOKO 柱的最右侧。谢谢
-
您没有将子查询链接到主查询中的任何内容...为什么要建立任何连接?
-
我尝试连接它们,但结果仍然相同: FROM whbal INNER JOIN customer ON whbal.customer=customer.customer WHERE warehouse='SKW' AND whbal.customer BETWEEN @cust1 AND @cust2 ) 作为 SENOKO