【发布时间】:2017-06-06 14:08:21
【问题描述】:
我有两张桌子Table A 和Table B。
我想在两个月和 year=2017 之间为 TableA 选择每个 Code 的总和列作为 A,将 TableB 选择为 B,但我想从 TableB 中选择所有行作为 C,其中 Year=2017 没有月份的过滤器。
低于我尝试过的:
SELECT A.Annee as Year,
code_ville as Code,
SUM(UniteVendu) AS Unit,
SUM(CAVendu) AS CA,
SUM(B.UniteVentePrev) AS Unit_P,
SUM(B.CAVentePrev) AS Ca_P,
SUM(C.UniteVentePrev) AS Unit_PPP,
SUM(C.CAVentePrev) AS Ca_PPP
FROM TableA A
left join TableB B on A.code=B.codeP
and A.Annee=PP.Annee
and A.mois =B.mois
left join TableB C on A.code=C.codeP
and A.Annee=C.Annee
where A.Annee = 2017
and A.mois >= 1
and A.mois <= 3
GROUP BY R.Annee,
code_ville
但我得到的结果不正确。
【问题讨论】:
-
UNION在这种情况下不起作用吗?您可以使用 UNION 通过添加额外的列来区分 TableName 来进行查看。 -
月份和mois一样吗?您需要一个 union all 来合并两个表中的所有行。
-
是的
mois as Month
标签: sql sql-server