SQL联接选择联接表中不可用的所有值

时间:2018-09-28 06:08:02

标签: sql

是否可以使用连接从一个表中选择所有行,从另一表中选择一些行,

这是我想要做的。

Select CT.COA_TypeId,CT.Code,CT.Types,SUM(GL.Amount) As Amount  
       from COA_Type CT 
       join ChartOfAccount CA on CT.COA_TypeId=CA.COA_Id 
       Join COA_Client CC on CA.COA_Id = CC.COA_Id 
       JOIN GeneralLedgerLine GL on CC.AccountId=GL.AccountId  
 Group BY CT.Code,CT.Types,CT.COA_TypeId

我要选择所有带有金额的CT.Type,请输入不包含“我要金额”为空的行

enter image description here

1 个答案:

答案 0 :(得分:1)

Select CT.COA_TypeId,CT.Code,CT.Types,SUM(GL.Amount) As Amount  
       from COA_Type CT 
       INNER join ChartOfAccount CA on CT.COA_TypeId=CA.COA_Id 
       INNER Join COA_Client CC on CA.COA_Id = CC.COA_Id 
       LEFT JOIN GeneralLedgerLine GL on CC.AccountId=GL.AccountId  
 Group BY CT.Code,CT.Types,CT.COA_TypeId

通过将GeneralLedgerLine从INNER JOIN更改为LEFT JOIN,即使没有匹配的GeneralLedgerLine,您仍将获得COA_Type记录。

注意:您可能还必须将其他联接也加入LEFT JOIN。