CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

sql语句,表达式的问题?

楼主crazystudio(待从头,收拾旧山河)2005-01-22 20:57:49 在 MS-SQL Server / 基础类 提问

一直以来对sql中group   by的表达式不是理解的太清楚!  
  现有以下数据和sql查询,请问可不可以用表达式把iPrice的值求出来?  
  表:  
  id cInvCode cDate cUserName                                       iPrice  
  1 01019 2005-1-21   19:38:00 sjz               ¥211.00  
  2 02030 2005-1-21   19:38:00 sjz               ¥77.00  
  3 02031 2005-1-21   19:38:00 sjz               ¥66.00  
  4 02068 2005-1-21   19:38:00 sjz               ¥55.00  
  5 01019 2005-1-21   19:45:00 sjz               ¥211.00  
  6 02030 2005-1-21   19:46:00 sjz               ¥77.00  
  7 02031 2005-1-21   19:46:00 sjz               ¥66.00  
  8 02068 2005-1-21   19:46:00 sjz               ¥55.00  
  9 02097 2005-1-21   19:46:00 sjz               ¥455.00  
  10 01019 2005-1-21   19:44:00 sjz               ¥211.00  
  11 02030 2005-1-21   19:44:00 sjz               ¥77.00  
  12 02031 2005-1-21   19:44:00 sjz               ¥66.00  
  13 02068 2005-1-21   19:44:00 sjz               ¥55.00  
  14 02097 2005-1-21   19:44:00 sjz               ¥455.00  
  15 01019 2005-1-21   19:47:00 zz                 ¥123.00  
  16 02030 2005-1-21   19:47:00 zz                 ¥423.00  
  17 02031 2005-1-21   19:47:00 zz                 ¥56.00  
  18 02068 2005-1-21   19:47:00 zz                 ¥456.00  
  19 02097 2005-1-21   19:47:00 zz                 ¥786.00  
  20 03055 2005-1-21   19:47:00 zz                 ¥78.00  
  21 03056 2005-1-21   19:47:00 zz                 ¥789.00  
  22 03058 2005-1-21   19:47:00 zz                 ¥890.00  
  23 03061 2005-1-21   19:47:00 zz                 ¥34.00  
  24 03062 2005-1-21   19:47:00 zz                 ¥545.00  
  25 03096 2005-1-21   19:47:00 zz                 ¥345.00  
  26 04030 2005-1-21   19:47:00 zz                 ¥345.00  
  27 01019 2005-1-22   11:15:00 sjz               ¥123.00  
  28 02030 2005-1-22   11:15:00 sjz               ¥4,324.00  
  29 02031 2005-1-22   11:15:00 sjz               ¥456.00  
  30 02068 2005-1-22   11:15:00 sjz               ¥567.00  
  31 02097 2005-1-22   11:15:00 sjz               ¥768.00  
  32 03055 2005-1-22   11:15:00 sjz               ¥789.00  
  33 03056 2005-1-22   11:15:00 sjz               ¥89.00  
  34 03058 2005-1-22   11:15:00 sjz               ¥45.00  
  35 03061 2005-1-22   11:15:00 sjz               ¥234.00  
  36 03062 2005-1-22   11:15:00 sjz               ¥345.00  
  37 03096 2005-1-22   11:15:00 sjz               ¥34.00  
  38 04030 2005-1-22   11:15:00 sjz               ¥234.00  
  39 04047 2005-1-22   11:15:00 sjz               ¥234.00  
  40 04049 2005-1-22   11:15:00 sjz               ¥456.00  
  41 04058 2005-1-22   11:15:00 sjz               ¥5,645.00  
  42 04097 2005-1-22   11:15:00 sjz               ¥567.00  
  43 04030 2005-1-22   11:16:00 sjz               ¥22.00  
  44 04047 2005-1-22   11:16:00 sjz               ¥33.00  
  45 04049 2005-1-22   11:16:00 sjz               ¥44.00  
  46 04058 2005-1-22   11:16:00 sjz               ¥55.00  
  47 04097 2005-1-22   11:16:00 sjz               ¥66.00  
  48 04099 2005-1-22   11:16:00 sjz               ¥77.00  
  49 07051 2005-1-22   11:16:00 sjz               ¥88.00  
  50 17047 2005-1-22   11:16:00 sjz               ¥99.00  
  51 01019 2005-1-22   15:09:00 sjz               ¥123.00  
  52 02030 2005-1-22   15:09:00 sjz               ¥22.00  
  53 02031 2005-1-22   15:09:00 sjz               ¥33.00  
  54 02068 2005-1-22   15:09:00 sjz               ¥44.00  
  55 02097 2005-1-22   15:09:00 sjz               ¥55.00  
  56 03055 2005-1-22   15:09:00 sjz               ¥66.00  
  57 03056 2005-1-22   15:09:00 sjz               ¥77.00  
  58 03058 2005-1-22   15:09:00 sjz               ¥88.00  
   
  想得到以下结果:  
  各用户的最近一次的编号的价格:  
  cInvCode 最近日期 cUserName iPrice  
  17047 2005-1-22   11:16:00 sjz               ¥99.00  
  07051 2005-1-22   11:16:00 sjz               ¥88.00  
  04099 2005-1-22   11:16:00 sjz               ¥77.00  
  04097 2005-1-22   11:16:00 sjz               ¥66.00  
  04058 2005-1-22   11:16:00 sjz               ¥55.00  
  04049 2005-1-22   11:16:00 sjz               ¥44.00  
  04047 2005-1-22   11:16:00 sjz               ¥33.00  
  04030 2005-1-21   19:47:00 zz                 ¥345.00  
  04030 2005-1-22   11:16:00 sjz               ¥22.00  
  03096 2005-1-21   19:47:00 zz                 ¥345.00  
  03096 2005-1-22   11:15:00 sjz               ¥34.00  
  03062 2005-1-21   19:47:00 zz                 ¥545.00  
  03062 2005-1-22   11:15:00 sjz               ¥345.00  
  03061 2005-1-21   19:47:00 zz                 ¥34.00  
  03061 2005-1-22   11:15:00 sjz               ¥234.00  
  03058 2005-1-21   19:47:00 zz                 ¥890.00  
  03058 2005-1-22   15:09:00 sjz               ¥88.00  
  03056 2005-1-21   19:47:00 zz                 ¥789.00  
  03056 2005-1-22   15:09:00 sjz               ¥77.00  
  03055 2005-1-21   19:47:00 zz                 ¥78.00  
  03055 2005-1-22   15:09:00 sjz               ¥66.00  
  02097 2005-1-21   19:47:00 zz                 ¥786.00  
  02097 2005-1-22   15:09:00 sjz               ¥55.00  
  02068 2005-1-21   19:47:00 zz                 ¥456.00  
  02068 2005-1-22   15:09:00 sjz               ¥44.00  
  02031 2005-1-21   19:47:00 zz                 ¥56.00  
  02031 2005-1-22   15:09:00 sjz               ¥33.00  
  02030 2005-1-21   19:47:00 zz                 ¥423.00  
  02030 2005-1-22   15:09:00 sjz               ¥22.00  
  01019 2005-1-21   19:47:00 zz                 ¥123.00  
  01019 2005-1-22   15:09:00 sjz               ¥123.00  
   
  用以下语句可以实现:  
  SELECT   a.*,   b.iPrice  
  FROM   dbo.RdRecords   b   INNER   JOIN  
                      (SELECT   cInvCode,   MAX(cDate)   AS   最近日期,   cUserName  
                    FROM   dbo.RdRecords  
                    GROUP   BY   cInvCode,   cUserName)   a   ON   b.cInvCode   =   a.cInvCode   AND    
              b.cDate   =   a.最近日期   AND   b.cUserName   =   a.cUserName  
  想问的是可不可用一条语句把iPrice求出来,不用再做内嵌表查询?  
  也就是这样做:  
  SELECT   cInvCode,   MAX(cDate)   AS   最近日期,   cUserName,iPrice  
                    FROM   dbo.RdRecords  
                    GROUP   BY   cInvCode,   cUserName  
  但是这样做的话提示iPrice即不包含在聚合函数中也不包含在group   by语句中!  
  如果用表达式做的应该怎么做? 问题点数:100、回复次数:4Top

1 楼didoleo(冷月无声)回复于 2005-01-22 22:13:47 得分 50

 
  select   *   from   dbo.RdRecords   a  
        where   not   exists    
            (select   1   from   dbo.RdRecords   where    
                        cInvCode=a.cInvCode   and   cUserName=a.cUserName    
                            and   cDate>a.cDate)Top

2 楼playyuer(退休干部 卧鼠藏虫)回复于 2005-01-22 23:30:27 得分 50

select   *  
      from   RdRecords   a  
    where   not   exists   (select   1  
                                            from   RdRecords  
                                          where   cUserName   =   a.cUserName    
                                                      and  
                                                      cDate   >   a.cDate)  
   
   
  select   *  
      from   RdRecords   a  
    where   cDate   =   (select   max(cDate)  
                                      from   RdRecords  
                                    where   cUserName   =   a.cUserName    
                                )Top

3 楼crazystudio(待从头,收拾旧山河)回复于 2005-01-23 09:07:52 得分 0

playyuer(退休干部   卧鼠藏虫)   您好:  
  这两组语句取出的结果不一样!Top

4 楼crazystudio(待从头,收拾旧山河)回复于 2005-01-23 09:16:18 得分 0

SELECT   *  
  FROM   dbo.RdRecords   a  
  WHERE   (cDate   =  
                      (SELECT   MAX(cDate)  
                    FROM   RdRecords  
                    WHERE   cUserName   =   a.cUserName   AND   cInvCode   =   a.cInvCode))Top

相关问题

  • IB.表达式计算.求sql语句
  • 表达式的SQL语句如何书写
  • 如何使用正则表达式分析SQL语句?
  • sql的表达式计算语句怎样写?
  • 关于sql语句,简单政则表达式
  • dw中的Computer Field中的表达式可以用sql语句吗?
  • 500大分!求关于分析SQL语句的正则表达式
  • 如何在SQL语句的like子句中使用正则表达式?
  • 正则表达式~~ (用在SQL语句中的)谢谢大家了
  • 关于表达式语句,在线等!

关键词

  • sjz
  • rdrecords
  • 表达式
  • cusername
  • cdate
  • zz
  • cinvcode
  • dbo
  • where
  • select

得分解答快速导航

  • 帖主:crazystudio
  • didoleo
  • playyuer

相关链接

  • SQL Server类图书

广告也精彩

反馈

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