您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Delphi >> 在SQL能否实现下列的查询结果

在SQL能否实现下列的查询结果

来源:网络整理     时间:2016/8/10 21:09:05     关键词:

关于网友提出的“ 在SQL能否实现下列的查询结果”问题疑问,本网通过在网上对“ 在SQL能否实现下列的查询结果”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 在SQL能否实现下列的查询结果
描述:


        SQL中原值                                  需要的结果
      说明:
编号  日期         单价
11 20080608 20 1、编号以升序,日期以降序排序       编号   日期         单价
11 20080607 10                               11 20080608 20
12 20080617 0 2、当单价不为零值时,只取同一编号中日期最大的值      12 20080616 220
12 20080616 220                               13 20080617 230
12 20080613 130                               14 20080618 240
12 20080612 60                               15 20080609 90
12 20080609 30                               16 20080610 100
13 20080618 0
13 20080617 230
13 20080615 150
13 20080614 140
13 20080614 200
13 20080611 110
13 20080610 40
13 20080607 70
14 20080618 240
14 20080616 160
14 20080615 210
14 20080613 190
14 20080612 120
14 20080611 50
14 20080608 80
15 20080609 90
16 20080610 100


解决方案1:


--SQL2005
with tab([编号], [单价])
as(
select [编号], [单价] = max([单价])
from tb
group by [编号]
)
select B.*
from tab A left join tb B on A.[编号] = B.[编号] and A.[单价] = B.[单价]
order by A.[编号] asc, B.[日期] desc
--SQL2000
select B.* from (
select [编号], [单价] = max([单价])
from tb
group by [编号]) a left join tb B on A.[编号] = B.[编号] and A.[单价] = B.[单价]

以上介绍了“ 在SQL能否实现下列的查询结果”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3197420.html

相关图片

相关文章