读书人

(待)表联合查询

发布时间: 2012-03-05 11:54:02 作者: rapoo

(在线等待)表联合查询
有两个表:AA(name,aday(加班天数)),BB(name,bday(请假天数)),想实现下面的功能:

如果AA表的name与BB表的name同一人,那就aday - bday,如果AA有而BB没有或者BB有而AA没有,也要显示在DBGrid中。即:

AA BB

name aday name bday

BB 1 BB 2

CC 2 DD 1

EE 1 EE 1


查询显示结果应该是:

name day

BB -1

EE 0

CC 2

DD 1

哪位朋友帮忙一下,不胜感激!谢谢




[解决办法]
关注,帮顶
[解决办法]
Select IsNull(A.Name,B.Name) as Name,IsNull(A.ADay,0) as ADay,IsNull(B.BDay,0) as BDay
From AA A Full Join BB B On A.Name=B.Name

这样的问题都在问,看来你们的项目比较尴尬
[解决办法]

探讨
Select IsNull(A.Name,B.Name) as Name,IsNull(A.ADay,0) as ADay,IsNull(B.BDay,0) as BDay
From AA A Full Join BB B On A.Name=B.Name

这样的问题都在问,看来你们的项目比较尴尬

[解决办法]
SQL code
select cc.name, sum(cc.aday) as [day] from (select name,aday from aa union all (select name,bday*-1 as aday from bb)) cc
[解决办法]
不好意思,上面的忘了group by 了
select cc.[name], sum(cc.aday) as [day] from (select [name],aday from aa union all (select [name],bday*-1 as aday from bb)) cc group by cc.[name]

读书人网 >.NET

热点推荐