子查询未连接到主查询
下面的查询用于从数据库中检索报告中显示的记录。 但是SENOKO和EUNOS列在每一行中显示重复的总数。 这似乎子查询没有连接到主查询导致不采取过滤。
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
结果:
有谁知道问题和解决方案是什么,请评论和指导。 赞赏并提前感谢。
哦,你的问题很简单。 您的查询根本与外部查询Senkoku
,因此您可以获得Senkoku
(可能是EUNO
)在整个whbal
表中的whbal
。
阅读你的查询,我认为这是你想要的。
我认为你需要在子查询中使用一个关联子句,在那里你将whbal
的行whbal
到一个外部表中的某些列。 不知道你真正想要什么或你的数据结构,我不能提出一个特定的条件。
编辑:
连接它们的正确方法是:
(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' and whbal.customer = customer.customer ) AS SENOKO