查询问题(100分)

  • 主题发起人 主题发起人 nancy_yan012
  • 开始时间 开始时间
N

nancy_yan012

Unregistered / Unconfirmed
GUEST, unregistred user!
有两个表a,b,它们之间用id相关联,现在需要生成一个数据集:
table a: table b:
id 日期 成本 id 日期 费用
------------ -------------

生成:
id 月份 成本 费用
----------------------

select case when aaa.id is not null then aaa.id else bbb.id,
case when aaa.月份 is not null then aaa.月份 else bbb.月份,成本,费用
from
(select id,convert(char(6),日期,112) as 月份 ,sum(成本) as 成本
from a group by convert(char(6),日期,112),id
) as AAA
full join
(select id,convert(char(6),日期,112) as 月份 ,sum(费用) as 费用
from a group by convert(char(6),日期,112),id
) as bbb
on aaa.月份=bbb.月份 and aaa.id=bbb.id
以上语句存在一个错误:
当b表中不存在该月份的数据而a表有时,则所生成的数据集中a表的该条数据不存在。
不知道这句语该怎样写
 
使用左连接,left join
 
问题已解决原来的语句没错,只是由于第一条语句在返回时没有加isnull造成的。
 
那么复杂,用join的不行吗?
 
对,使用左连接
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部