如何连接SQL中列不匹配的两个表
我有两个不同的表,在select查询中,我需要获取另一列的总和,但这两个表都有一些相似的数据,但在查询中,输出值仍然不正常 我正在使用以下查询:- 查询1如何连接SQL中列不匹配的两个表,sql,sql-server,Sql,Sql Server,我有两个不同的表,在select查询中,我需要获取另一列的总和,但这两个表都有一些相似的数据,但在查询中,输出值仍然不正常 我正在使用以下查询:- 查询1 select COUNTRY, SUM (BUDGET_SALES) AS BUDGET_SALES from ANALYSE.LCM_COMMON_BUDGET_SALES WHERE WEEK_START_DATE=@WEEK_COMMENCING_VAR group by COUNTRY 查询2 select distinc
select COUNTRY, SUM (BUDGET_SALES) AS BUDGET_SALES
from ANALYSE.LCM_COMMON_BUDGET_SALES
WHERE WEEK_START_DATE=@WEEK_COMMENCING_VAR
group by COUNTRY
查询2
select distinct cntry AS COUNTRY, SUM (B.BUDGET_SALES) AS BUDGET
from [publish].[LCM_COMMON_HNB_WEEKLY_ACTUAL] A
left join ANALYSE.LCM_COMMON_BUDGET_SALES B
ON --A.bnnr=B.BANNER
A.cntry=B.COUNTRY
--and A.Week_End=B.WEEK_END_DATE
and A.Week_Commencing=B.WEEK_START_DATE
WHERE A.Week_Commencing=@WEEK_COMMENCING_VAR
group by cntry
查询1输出
国家
销售预算
我的
20463355.16
SG
41095952.67
最有可能的是,您的表[publish].[LCM_COMMON_HNB_WEEKLY_ACTUAL]的粒度(可能更低)与您的表Analysis.LCM_COMMON_BUDGET_SALES不同,因此我将这样做:
从这里,您可以决定需要包括哪些字段。在查询中有一个
不同的和一个分组依据
可以推断出一个缺陷;您的分组依据
不完整,或者不需要不同的
。至于问题,预期结果将帮助我们帮助您。如果要将连接到表中,则某些数据必须匹配,否则您打算连接什么on@Larnu,甚至我也可以避免使用Join(尽管列country、banner、start date、Week end具有其他表的类似数据),而是可以使用Union。但是同时使用Union,我没有得到期望的输出。我尝试修改了groupby
和DISTINCT
。仍然是相同的问题。谢谢:)Np。很高兴能帮上忙。
With CountryWeeklyActual as
(
select Country, WEEK_START_DATE, SUM(BUDGET_SALES) as ActualBudgetSum
from [publish].[LCM_COMMON_HNB_WEEKLY_ACTUAL]
where WEEK_START_DATE = @WEEK_COMMENCING_VAR
group by Country, WEEK_START_DATE
), CountryWeeklyCommon as
(
select COUNTRY, Week_Commencing, SUM(BUDGET_SALES) as CommonBudgetSum
from ANALYSE.LCM_COMMON_BUDGET_SALES
where Week_Commencing = @WEEK_COMMENCING_VAR
Group by COUNTRY, Week_Commencing
)
select wa.COUNTRY, wa.WEEK_START_DATE, wa.ActualBudgetSum, wc.Week_Commencing, wc.CommonBudgetSum
From CountryWeeklyActual wa
left join CountryWeeklyCommon wc
on wa.COUNTRY=wc.Country and wa.WEEK_START_DATE=wc.Week_Commencing