求一條查詢語句~

wenjinhe 2006-08-24 04:18:17
現在有兩個表A\B
A表
工號 月份 遲到 曠工
1 01 2 3
2 01 1 6
3 02 9 8
...........
B表
工號 月份 請假
2 01 2
4 01 1
5 02 9
...........

A表中有的“工號”數據 B表中不一定有,A表中在和B表同一工號下的B表中有的“月份”數據A表沒有

我現在需要的結果是
C表
工號 月份 遲到 曠工 請假
1 01 2 3 0
2 01 1 6 2
3 02 9 8 0
4 01 0 0 1
5 02 0 0 9
...........
請教高手~~
...全文
134 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zsforever 2006-08-25
  • 打赏
  • 举报
回复
可能是少连接条件
wenjinhe 2006-08-25
  • 打赏
  • 举报
回复
select a.linecode,a.linename,b.empno,a.cname,a.sftype,a.title_desc,a.strucode,a.struname,b.acccourse as empdate,a.kg,a.cd,b.lc19 from dbo.emp1000c_view a,dbo.salary_sm3s b
where b.empno+'*'+b.acccourse not in (select a.empno+'*'+a.empdate from dbo.emp1000c_view)

我寫入這個語句怎么會每個人出現几千條重復的數據?
請高手指點
Jane_64 2006-08-24
  • 打赏
  • 举报
回复
declare @A table(工號 int,月份 char(2),遲到 int,曠工 int)
insert @A
select 1,'01',2,3 union
select 2,'01',1,6 union
select 3,'02',9,8

declare @B table(工號 int,月份 char(2),請假 int)
insert @B
select 2,'01',2 union
select 4,'01',1 union
select 5,'02',9


select a.工號,a.月份,a.遲到,a.曠工,請假=isnull(請假,0)
from @A a left join @B b on a.工號=b.工號 and a.月份=b.月份
union
select 工號,月份,0,0,請假
from @B
where convert(varchar,工號)+'*'+月份
not in (select convert(varchar,工號)+'*'+月份 from @A)

/*
工號 月份 遲到 曠工 請假
1 01 2 3 0
2 01 1 6 2
3 02 9 8 0
4 01 0 0 1
5 02 0 0 9
*/
zsforever 2006-08-24
  • 打赏
  • 举报
回复
select 工號,月份,sum(遲到) 遲到,sum(曠工) 曠工,sum(請假) 請假 from
(select 工號,月份,遲到,曠工,0 請假 from A
union
select 工號,月份,0 遲到,0 曠工,請假 from B) T
group by 工號,月份
order by 工號

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧