日期:2014-05-17  浏览次数:20501 次

如何只取一条负数的记录
CODE, ITEM, QNT
---------------
A, 1, -200
A, 2, -80
A, 3, -50
A, 4, 120
A, 5, 260


我想得到的结果是
A, 3, -50
A, 4, 120
A, 5, 260


就是负数的部分我只要抓一条就可以了,前面的可以不要,但正数的我都要

------解决方案--------------------
select * from table1 as a where QNT>=0 or not exists(select 1 from table1 where a.QNT<0 and QNT<0 and ITEM>a.ITEM)
------解决方案--------------------
引用:
select * from table1 as a where QNT>=0 or not exists(select 1 from table1 where a.QNT<0 and QNT<0 and ITEM>a.ITEM)

+1
------解决方案--------------------
引用:
谢谢,可以用

如果我想在

A, 3, -50加一个"*",作一个记号

变成

A, 3, -50,*
A, 4, 120,[空白]
A, 5, 260,[空白]

改一下大版的就可以了
select Code,Item,Qnt,(case when Qnt>0 then '' else '*' end) Flag
from table1 as a where QNT>=0 or not exists(select 1 from table1 where a.QNT<0 and QNT<0 and ITEM>a.ITEM)