CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

这句sql怎么写?

楼主wyblhbw(永远学生敝人也)2004-09-03 18:19:11 在 MS-SQL Server / 基础类 提问

有表table1,字段及记录如下:  
   
        单位编码     水表代码       口径         水量         用水性质        
   
          A0101         12                 15             100           生活  
          A0101         13                 16             110           生产  
          A0105         14                 22             120           生活  
          A0105         15                 22             130           生活  
           
          A0106         14                 22             120           生活  
          A0106         15                 22             120           生产  
   
   
          如果得到:按口径-水量-用水性质进行筛选,筛选原则:  
                            在相同单位编码里面比较口径大小,大的优选选中然后再进一步比较  
                            在相同口径里面比较水量大小,多的优先选中然后再进一步比较  
                            在相同水量里面比较用水性质,用水性质为"生产"的优先  
       
              按此原则得到如下记录:  
   
   
  单位编码     水表代码       口径         水量         用水性质        
          A0101         13                 16             110           生产  
          A0105         15                 22             130           生活  
          A0106         15                 22             120           生产  
   
  问题点数:0、回复次数:6Top

1 楼leeboyan(宝宝)回复于 2004-09-03 18:24:22 得分 0

select   单位编码,max(口径)as   口径,max(水量)as   水量,用水性质=(case   when   用水性质='生产'   then   '生产'   else   '生活'   end)   from   tablename   group   by   单位编码Top

2 楼yesterday2000(一笑而过)回复于 2004-09-03 18:37:21 得分 0

create   table   sb   (单位编码   char   (10),水表代码   int,口径   int,水量   int   ,用水性质   char   (4))  
   
  insert   into   sb    
  select           'A0101',         12,                 15,             100   ,         '生活'  
  union    
  select           'A0101',         13   ,               16       ,       110       ,     '生产'  
  union  
  select           'A0105',         14,                 22,             120,           '生活'  
  union    
  select           'A0105',         15       ,           22   ,           130,           '生活'  
  union  
  select           'A0106'   ,     14   ,               22     ,         120     ,       '生活'  
  union  
  select           'A0106',         15     ,             22   ,           120   ,         '生产'  
   
   
  select   b.*,a.用水性质   from   sb   a,(  
  select   单位编码     ,max(水表代码)   水表代码,max   (口径)   as   口径,max   (水量)   as   水量  
  from   sb  
  group   by   单位编码)   b  
  where   a.单位编码=b.单位编码   and   a.水表代码=b.水表代码  
   
  单位编码     水表代码       口径         水量         用水性质        
  --------     -------       ----         ----         -------  
  A0101         13                 16             110           生产  
  A0105         15                 22             130           生活  
  A0106         15                 22             120           生产Top

3 楼bernice99(宝宝)回复于 2004-09-03 22:23:57 得分 0

select   单位编码,max(水表代码),max(口径),max(水量),max(用水性质)from   table1   group   by   单位编码  
   
  在音序中,生产>生活。所以max(用水性质)优先选生产。  
   
  Top

4 楼enjsky(郭志军)回复于 2004-09-03 22:37:06 得分 0

 
  楼上的加一条这个就不对了啊    
  insert   into   sb    
  select           'A0106',         15     ,             22   ,           120   ,         '生活'Top

5 楼enjsky(郭志军)回复于 2004-09-03 22:38:58 得分 0

成这样了  
  单位编码     水表代码           口径               水量               用水性质    
  ----------   -----------   -----------   -----------   ----    
  A0101             13                     16                     110                   生产  
  A0105             15                     22                     130                   生活  
  A0106             15                     22                     120                   生产  
  A0106             15                     22                     120                   生活Top

6 楼enjsky(郭志军)回复于 2004-09-03 22:48:33 得分 0

这样对了吧..  
  select   单位编码,max(水表代码)   as   水表代码,max(口径)   as   口径,max(水量)   as   水量,min(用水性质)   as   用水性质  
    from   sb   group   by   单位编码  
   
  结果:  
  单位编码       水表代码         口径               水量               用水性质    
  ----------   -----------   -----------   -----------   ----    
  A0101             13                     16                     110                   生产  
  A0105             15                     22                     130                   生活  
  A0106             15                     22                     120                   生产  
   
  bernice99(bernice99)错了,应该是min(用水性质)  
  Top

相关问题

  • sql语句怎么写?
  • 这句SQL怎么写?
  • 这句SQL怎么写???
  • sql语句怎么写
  • SQL语句怎么写啊~~
  • 这句sql怎么写~~~!!! 急~~
  • sql语句怎么写?
  • 这句SQL怎么写
  • 这句sql怎么写
  • 这句sql怎么写

关键词

  • 编码
  • 代码
  • 水量
  • 口径
  • 用水性质
  • 水表代码
  • 生产
  • 单位编码
  • 生活
  • sb

得分解答快速导航

  • 帖主:wyblhbw

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo