日期:2014-5-16 浏览次数:20125次 点赞次数:20

菜菜的查询,请大家帮忙
表1:
日期           姓名 数量 型号
20070701 张三 1 产品A
20070702 张三 2 产品A
20070703 张三 4 产品B
20070704 张三 2 产品B
20070705 张三 3 产品A

想查询出7月份某人产品总量及产品A的数量
结果:
月份         姓名           总量           产品A
7月           张三           12               6

------解决方案--------------------
declare @t table(日期 datetime,姓名 nvarchar(20),数量 int,型号 nvarchar(20))
insert into @t select
'2007-07-01 ', N '张三 ' ,1 ,N '产品A ' union all
select '2007-07-02 ', N '张三 ' ,2 ,N '产品A 'union all
select '2007-07-03 ', N '张三 ', 4 ,N '产品B 'union all
select '2007-07-04 ' ,N '张三 ' ,2, N '产品B 'union all
select '2007-07-05 ', N '张三 ', 3, N '产品A '



select month(日期) 月份,姓名,sum(数量) 总量,型号 from @t where month(日期)=7 group by month(日期),姓名,型号

结果
月份 姓名 总量 型号
----------- -------------------- ----------- --------------------
7 张三 6 产品A
7 张三 6 产品B
------解决方案--------------------
SELECT
val(mid(日期,5,2)) & "月 " AS 月份,
姓名,
Sum(数量) AS 总量,
sum(iif(型号= '产品A ',数量,0)) as 产品A
FROM 表1
where Left([日期],6)=200707 and 姓名= '张三 '
GROUP BY val(mid(日期,5,2)) & "月 ", 姓名