处理这个错误,我需要另外一双眼睛
此查询应该记录Period_Matrix
中的所有记录,无论它是否在Sales_Matrix
中,但它不是,相反,它只记录两者都在哪里,这是一个内连接,而不是外连接。这是在SQL Server上
就像我说的那样,花了一个小时,需要一个全新的视角。
select
*
from Period_Matrix PM
left outer join Sales_Matrix SM_Current
on PM.current_period = SM_Current.period
and PM.Product_Type = SM_Current.Product_Type
and PM.team_no = SM_Current.team_no
order by period desc, team_no
答案 0 :(得分:2)
这是您的查询:
ipython
这应该是一个真正的左连接。问题是:你看到了你期望的结果吗?
好吧,首先你有重复的列名。更重要的是,您拥有select *
from Period_Matrix PM left outer join
Sales_Matrix SM_Current
on PM.current_period = SM_Current.period and
PM.Product_Type = SM_Current.Product_Type and
PM.team_no = SM_Current.team_no
order by period desc, team_no;
中 second 表中的列。 order by
值并不总是以您希望的方式排序。我建议:
NULL
我猜这会解决你的问题。
select PM.*, SM_Current.??, . . .
from Period_Matrix PM left outer join
Sales_Matrix SM_Current
on PM.current_period = SM_Current.period and
PM.Product_Type = SM_Current.Product_Type and
PM.team_no = SM_Current.team_no
order by PM.current_period desc, PM.team_no;
表示要明确列出第二个表中的所有列,以避免重复和冗余。