请教一个组合查询的问题 SELECT 编码,姓名,SUM(变动数A),年度,月份 FROM (SELECT * FROM TA UNION ALLSELECT * FROM TB)T GROUP BY 编码,姓名,年度,月份 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select A.编码,A.姓名,A.变动数+isnull(B.变动数,0) as 最终变动数,A.年度,A.月份from tb A left join tb B on A.编码=B.编码 and A.年度=B.年度 and A.月份=B.月份 and A.姓名=B.姓名 DECLARE @A TABLE(编码 INT, 姓名 NVARCHAR(10), 变动数A INT, 年度 INT, 月份 INT) INSERT @A SELECT 1001 ,N'张三', 1000 , 2008 , 10 INSERT @A SELECT 1001 ,N'张三', 1000 , 2008 , 11 INSERT @A SELECT 1001 ,N'张三', 1000 , 2008 , 12 INSERT @A SELECT 1002 ,N'李四', 2000 , 2008 , 10 INSERT @A SELECT 1002 , N'李四', 1000 , 2008 , 11 INSERT @A SELECT 1002, N'李四', 2000, 2008 ,12 DECLARE @B TABLE(编码 INT, 姓名 NVARCHAR(10), 变动数B INT, 年度 INT, 月份 INT) INSERT @B SELECT 1001 , N'张三', 20 , 2008 , 10 INSERT @B SELECT 1002 , N'李四', 100, 2008 , 10 INSERT @B SELECT 1002, N'李四', 200 , 2008, 12 SELECT 编码,姓名,SUM(变动数A),年度,月份 FROM (SELECT * FROM @A UNION ALLSELECT * FROM @B)T GROUP BY 编码,姓名,年度,月份/*编码 姓名 年度 月份 ----------- ---------- ----------- ----------- ----------- 1001 张三 1020 2008 101001 张三 1000 2008 111001 张三 1000 2008 121002 李四 2100 2008 101002 李四 1000 2008 111002 李四 2200 2008 12*/ declare @t table(编码 varchar(4),姓名 varchar(4),变动数A int,年度 int,月份 int)insert @t select '1001','张三',1000,2008,10insert @t select '1001','张三',1000,2008,11insert @t select '1001','张三',1000,2008,12insert @t select '1002','李四',2000,2008,10insert @t select '1002','李四',1000,2008,11insert @t select '1002','李四',2000,2008,11declare @b table(编码 varchar(4),姓名 varchar(4),变动数b int,年度 int,月份 int)insert @b select '1001','张三',20,2008,10insert @b select '1002','李四',100,2008,10insert @b select '1002','李四',200,2008,12select a.编码,a.姓名,'最终变动数'=(isnull(a.变动数A,0)+isnull(b.变动数b,0)),a.年度,a.月份from @t a left join @b b on a.姓名=b.姓名 and a.年度=b.年度 and a.月份=b.月份/*编码 姓名 最终变动数 年度 月份 ---- ---- ----------- ----------- ----------- 1001 张三 1020 2008 101001 张三 1000 2008 111001 张三 1000 2008 121002 李四 2100 2008 101002 李四 1000 2008 111002 李四 2000 2008 11(所影响的行数为 6 行)*/ sql语句紧急求救 sqlserver 用什么函数可以查询到当前周的数据. 求教一条SQL语句! select 语句求助 有没有分安局工作的,古怪的人名是如何录入到系统中的。一个怪名字,身份证居然有,可这个字根本打不出来? 请教php的傻瓜安装法 高分 BrentIvan(Ivan) 请进来 ! 主题:有谁能给我分析一下sql server日志文件吗?谢了先! 请教BCP命令.... sql 触发器 触发的内容是提醒性文字改怎么写? 帮忙优化语句 SQL 统计时间
from tb A left join tb B on A.编码=B.编码 and A.年度=B.年度 and A.月份=B.月份 and A.姓名=B.姓名
INSERT @A SELECT 1001 ,N'张三', 1000 , 2008 , 10
INSERT @A SELECT 1001 ,N'张三', 1000 , 2008 , 11
INSERT @A SELECT 1001 ,N'张三', 1000 , 2008 , 12
INSERT @A SELECT 1002 ,N'李四', 2000 , 2008 , 10
INSERT @A SELECT 1002 , N'李四', 1000 , 2008 , 11
INSERT @A SELECT 1002, N'李四', 2000, 2008 ,12
DECLARE @B TABLE(编码 INT, 姓名 NVARCHAR(10), 变动数B INT, 年度 INT, 月份 INT)
INSERT @B SELECT 1001 , N'张三', 20 , 2008 , 10
INSERT @B SELECT 1002 , N'李四', 100, 2008 , 10
INSERT @B SELECT 1002, N'李四', 200 , 2008, 12 SELECT 编码,姓名,SUM(变动数A),年度,月份 FROM (
SELECT * FROM @A
UNION ALL
SELECT * FROM @B)T GROUP BY 编码,姓名,年度,月份
/*编码 姓名 年度 月份
----------- ---------- ----------- ----------- -----------
1001 张三 1020 2008 10
1001 张三 1000 2008 11
1001 张三 1000 2008 12
1002 李四 2100 2008 10
1002 李四 1000 2008 11
1002 李四 2200 2008 12*/
insert @t select '1001','张三',1000,2008,10
insert @t select '1001','张三',1000,2008,11
insert @t select '1001','张三',1000,2008,12
insert @t select '1002','李四',2000,2008,10
insert @t select '1002','李四',1000,2008,11
insert @t select '1002','李四',2000,2008,11declare @b table(编码 varchar(4),姓名 varchar(4),变动数b int,年度 int,月份 int)
insert @b select '1001','张三',20,2008,10
insert @b select '1002','李四',100,2008,10
insert @b select '1002','李四',200,2008,12
select a.编码,a.姓名,'最终变动数'=(isnull(a.变动数A,0)+isnull(b.变动数b,0)),a.年度,a.月份
from @t a left join @b b on a.姓名=b.姓名 and a.年度=b.年度 and a.月份=b.月份
/*
编码 姓名 最终变动数 年度 月份
---- ---- ----------- ----------- -----------
1001 张三 1020 2008 10
1001 张三 1000 2008 11
1001 张三 1000 2008 12
1002 李四 2100 2008 10
1002 李四 1000 2008 11
1002 李四 2000 2008 11(所影响的行数为 6 行)*/