| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1019 人关注过本帖
标题:关于合并查询结果的问题请教大家,谢谢!
只看楼主 加入收藏
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
结帖率:100%
收藏
 问题点数:0 回复次数:4 
关于合并查询结果的问题请教大家,谢谢!
有一数据表AAA,字段分别是 MingChen 、 ShuLian 、 WanChenShiJin ,想根据WanChenShiJin 是否为 null  来分类查询数据并合并查询结果:当 WanChenShiJin 为 null 时是属于“在建工程”,当 WanChenShiJin 不为 null 时是属于“已完工程”,并且分开计算出“在建工程”和“已完工程”中 ShuLian 字段 的合计数。
表AAA
MingChen   ShuLian   WanChenShiJin
A        100.11         null
B    200.22         2006-6-6
C    300.33    null
D    400.44    2007-7-7

想得到如下查询结果:
MingChen   ShuLian   WanChenShiJin
在建工程        null           null
B    200.22         2006-6-6
D    400.44    2007-7-7
小计            600.66         null
已完工程        null           null
A        100.11         null
C    300.33    null
小计            400.44         null

查询语句如下:
Select  '在建工程 '  as  MingChen,null  as  ShuLian,null  as  WanChenShiJin
union
select  MingChen,ShuLian,WanChenShiJin  from  AAA  where  WanChenShiJin  is  not  null
union
select  '小计'  as  MingChen,sum(ShuLian)  as  ShuLian,null WanChenShiJin
from  AAA  where  WanChenShiJin  is  not  null
union
select  '已完工程'  as  MingChen,null  as  ShuLian,null  as  WanChenShiJin
union
select  MingChen,ShuLian,WanChenShiJin  from  AAA  where  WanChenShiJin  is  null
union
select  '小计'  as  MingChen,sum(ShuLian)  as  ShuLian,null WanChenShiJin
from  AAA  where  WanChenShiJin  is  null
但上述语句查询出来的结果是
MingChen   ShuLian   WanChenShiJin
A        100.11         null
B    200.22         2006-6-6
C    300.33    null
D    400.44    2007-7-7
小计            400.44         null
小计            600.66         null
已完工程        null           null
在建工程        null           null

虽然查询出来的结果值没错,但“在建工程”、“已完工程”、两个“小计”数据行并没有排在想要的地方。
请大家帮忙如何写查询语句才能得到想要的数据显示结果???谢谢!
 
在SQL查询分析器中的语句如下:
create  table  AAA
(
MingChen            varchar(80)           null,
ShuLian             decimal(18,2)          not null,
WanChenShiJin       smalldatetime          null
)
Insert  into  AAA(MingChen,ShuLian,WanChenShiJin)  values('A',100.11,null)
Insert  into  AAA(MingChen,ShuLian,WanChenShiJin)  values('B',200.22,'2006-6-6')
Insert  into  AAA(MingChen,ShuLian,WanChenShiJin)  values('C',300.33,null)
Insert  into  AAA(MingChen,ShuLian,WanChenShiJin)  values('D',400.44,'2007-7-7')

Select  '在建工程 '  as  MingChen,null  as  ShuLian,null  as  WanChenShiJin
union
select  MingChen,ShuLian,WanChenShiJin  from  AAA  where  WanChenShiJin  is  not  null
union
select  '小计'  as  MingChen,sum(ShuLian)  as  ShuLian,null WanChenShiJin
from  AAA  where  WanChenShiJin  is  not  null
union
select  '已完工程'  as  MingChen,null  as  ShuLian,null  as  WanChenShiJin
union
select  MingChen,ShuLian,WanChenShiJin  from  AAA  where  WanChenShiJin  is  null
union
select  '小计'  as  MingChen,sum(ShuLian)  as  ShuLian,null WanChenShiJin
from  AAA  where  WanChenShiJin  is  null

drop table  AAA
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 结果 查询 
2008-04-07 08:41
shezhenhui1989
Rank: 1
来 自:安徽
等 级:新手上路
帖 子:287
专家分:0
注 册:2008-2-1
收藏
得分:0 
帮你顶上去
2008-04-07 15:02
wdliu
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-11-26
收藏
得分:0 
回复你
所有的UNION都加上ALL就可以
2008-04-17 17:26
zhxming
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-4-18
收藏
得分:0 
回复你
ALL部涉及到NULL
而*涉及到NULL
2008-04-18 11:52
lff642
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-11-28
收藏
得分:0 
您可以使用CASE WHEN 来解决
2008-04-25 16:35
快速回复:关于合并查询结果的问题请教大家,谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019319 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved