CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

求一个查询语句?

楼主zhangwei1437(zhangwei)2004-12-02 15:51:04 在 MS-SQL Server / 基础类 提问

有一个表  
  字段如下:  
  A       B         C     D  
  00     1         1       1  
  01     1         1       1  
  02     1         1       1  
  我怎么样才能既能取到A字段   又只取一条  
  结果如下   A             B           C         D  
                  000102     1         1           1  
  如果或者只取  
                A         B         C           D  
                00         1       1         1  
  因为我用到了GROUP   BY   所以怎么取才合适那  
   
  很着急啊,高手帮忙 问题点数:20、回复次数:16Top

1 楼zhangwei1437(zhangwei)回复于 2004-12-02 15:52:55 得分 0

注名:A字段是字符型Top

2 楼lsxaa(小李铅笔刀)回复于 2004-12-02 16:01:23 得分 0

min(A)   or   max(A)Top

3 楼yesyesyes()回复于 2004-12-02 16:02:30 得分 0

select   top   1   *   from   table  
  嘿嘿:PTop

4 楼zzy928()回复于 2004-12-02 16:16:30 得分 0

顺便问一下,使用top是不是只能针对整数型的呢,还是字符型的也可以  
  在线问  
  谢谢Top

5 楼chenyu112(晨雨)回复于 2004-12-02 16:26:56 得分 0

select   top   1   *   from   tableTop

6 楼acelove(命中注定是菜鸟)回复于 2004-12-02 16:42:24 得分 0

TO:zzy928()  
  什么类型都没关系,top   1   是只取第一条记录Top

7 楼lsxaa(小李铅笔刀)回复于 2004-12-02 16:52:33 得分 0

--建一个函数  
  create   function   c_str(@b   varchar(1),@c   varchar(1),@d   varchar(1))  
  returns   varchar(1000)  
  as  
  begin  
        declare   @s   varchar(1000)  
        set   @s=''  
        select   @s=@s+a   from   t   where   b=@b   and   c=@c   and   d=@d  
        return   @s  
  end  
  --查询  
  select   dbo.c_str(b,c,d),b,c,d    
  from   t  
  group   by   b,c,dTop

8 楼lsxaa(小李铅笔刀)回复于 2004-12-02 17:06:41 得分 0

--查询  
  select   top   1   dbo.c_str(b,c,d),b,c,d    
  from   t  
  group   by   b,c,d  
  Top

9 楼zzy928()回复于 2004-12-02 17:09:59 得分 0

谢谢   acelove(真心小英雄)  
  我知道了,哈哈Top

10 楼zhangwei1437(zhangwei)回复于 2004-12-02 17:14:47 得分 0

不好意思,还得麻烦你,帮我看看老大  
  SELECT   xfwh.ls_rq,   SUM(xfwh.cpsl   *   xfwh.wlsl   *   xfwh.wldj)   AS   chengben,   table2.ls_renshu,    
              table2.js_zh,   table2.js_dcsj,   table2.js_sj,   table2.xfsj,   table2.js_gzsp,   table2.js_ze,    
              table2.zhekou,   CONVERT(numeric(18,   4),    
              table2.js_ze   -   SUM(xfwh.cpsl   *   xfwh.wlsl   *   xfwh.wldj))   AS   maoli,   CONVERT(numeric(18,    
              2),   (table2.js_ze   -   SUM(xfwh.cpsl   *   xfwh.wlsl   *   xfwh.wldj))   /   table2.js_ze   *   100)    
              AS   maolilu,   table2.js_xj,   table2.js_zp,   table2.js_xyk,   table2.js_shk,   table2.js_gz,    
              table2.js_pd,   table2.js_yh,   table2.js_ml,   table2.js_zksp,    
              CAST(table2.xfsj   /   60   AS   varchar(10))    
              +   '小时'   +   CAST(table2.xfsj   %   60   AS   varchar(10))   +   '分钟'   AS   ff,   table2.cc  
  FROM   (SELECT   xfjlb.ls_renshu,   xfjlb.ls_fuwuyuan   AS   cc,   table1.xfsj,   table1.js_dcsj,    
                              table1.js_sj,   table1.js_gzsp,   table1.js_ze,   table1.js_zh,   table1.zhekou,    
                              table1.js_xj,   table1.js_zp,   table1.js_xyk,   table1.js_shk,   table1.js_gz,    
                              table1.js_pd,   table1.js_yh,   table1.js_ml,   table1.js_zksp  
                  FROM   (SELECT   js_ze,   DATEDIFF(minute,   js_dcsj,   js_sj)   AS   xfsj,   js_dcsj,   js_sj,    
                                              js_zh,   js_gzsp,   (js_sjje   -   js_ze   +   js_ml)   AS   zhekou,   js_xj,   js_zp,    
                                              js_xyk,   js_shk,   js_gz,   js_pd,   js_yh,   js_ml,   js_zksp  
                                  FROM   jiesuan  
                                  GROUP   BY   js_dcsj,   js_sj,   js_gzsp,   js_ze,   js_zh,   js_sjje,   js_ml,   js_xj,   js_zp,    
                                              js_xyk,   js_shk,   js_gz,   js_pd,   js_yh,   js_ml,   js_zksp)   table1   INNER   JOIN  
                              xfjlb   ON   table1.js_dcsj   =   xfjlb.ls_sj  
                  GROUP   BY   xfjlb.ls_renshu,   xfjlb.ls_fuwuyuan,   table1.xfsj,   table1.js_dcsj,    
                              table1.js_sj,   table1.js_gzsp,   table1.js_ze,   table1.js_zh,   table1.zhekou,    
                              table1.js_xj,   table1.js_zp,   table1.js_xyk,   table1.js_shk,   table1.js_gz,    
                              table1.js_pd,   table1.js_yh,   table1.js_ml,   table1.js_zksp)   table2   INNER   JOIN  
              xfwh   ON   table2.js_dcsj   =   xfwh.ls_rq  
  GROUP   BY   xfwh.ls_rq,   table2.js_zh,   table2.ls_renshu,   table2.js_gzsp,   table2.js_ze,    
              table2.zhekou,   table2.js_xj,   table2.js_zp,   table2.js_xyk,   table2.js_shk,   table2.js_gz,    
              table2.js_ml,   table2.js_pd,   table2.js_yh,   table2.js_zksp,   table2.js_dcsj,   table2.js_sj,    
              table2.xfsj,   table2.cc  
  我在加上xfjlb.ls_fuwuyuan   之后,记录就变了,因为ls_fuwuyuan   有不同的值,你帮忙看看怎么改比较好啊Top

11 楼lsxaa(小李铅笔刀)回复于 2004-12-02 17:26:14 得分 0

光看语句,是看不懂的  
   
  你有几个表,他们之间的关系       要查询出什么来???Top

12 楼zhangwei1437(zhangwei)回复于 2004-12-02 17:44:38 得分 0

我有三个表xfjlb,jiesuan,xfwh  
  jiesuan中的字段       SJ           ZH           RENYUAN  
                                6.00       210         XIAOZHANG  
                                7.00       520         XIAOLI  
  xfjlb中的字段           renshu         fuwuyuan             dcsj  
                                        10                   张                       6.00  
                                        10                   张                       6.00  
                                        10                   李                       6.00  
                                        12                   张                       7.00  
                                        12                   张                       7.00    
  xfwh中的字段             sj                       cpsl             je  
                                      6.00                     1                   10  
                                      6.00                     2                   5  
                                      6.00                     1                     10  
                                      7.00                     1                   10  
                                      7.00                     1                     5  
  我想得到如下结果  
                        sj                 wh                 fuwuyuan                           renyuan  
                        6.00               30               张李(或者张也可以)       xiaozhang    
                        7.00               15               张                                         xiaoli  
  我都得通过sj   联系,是一对多吧Top

13 楼zhangwei1437(zhangwei)回复于 2004-12-02 17:46:58 得分 0

wh   是cpsl和jg的乘积  
  另外再加一列是renshu  
  6.00       10  
  7.00       12Top

14 楼airfont(草原劣马)回复于 2004-12-02 17:51:34 得分 0

select   top   1   *   from   table   where   a=00Top

15 楼lsxaa(小李铅笔刀)回复于 2004-12-02 17:54:38 得分 20

没用到   xfjlb     表吧???Top

16 楼zhangwei1437(zhangwei)回复于 2004-12-02 17:59:11 得分 0

用到了xfjlb中的renshu     和fuwuyuanTop

相关问题

  • 查询语句
  • 查询语句
  • 查询语句
  • SQL查询语句
  • Sql 查询语句
  • where in查询语句
  • 求查询语句
  • 问查询语句
  • SQL查询语句
  • 求查询语句

关键词

  • top
  • xfwh
  • varchar
  • table2
  • str
  • select

得分解答快速导航

  • 帖主:zhangwei1437
  • lsxaa

相关链接

  • SQL Server类图书

广告也精彩

反馈

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