读书人

求语句。解决办法

发布时间: 2012-05-09 12:13:59 作者: rapoo

求语句。。。。。。。。
A表中有一下数据
字段 AA 字段 BB 字段 CC
X 0101 100
X 0102 30
T 0101 40
G 0102 60
F 0101 10
F 0102 15


需要查询结果是
字段 AA 字段 BB 字段 CC
X 0101 100
X 0102 0
T 0101 40
G 0102 60
F 0101 10
F 0102 0


说明:当两条记录中的AA字段相等的时候:
字段BB如果等于0101,那么就返回字段CC的原值;
字段BB如果等于0102,那么就返0值;
AA值不相等的时候,返回CC的原值


如何写查询语句,请指点,万分感谢

[解决办法]

SQL code
--> 测试数据:[test]if object_id('[test]') is not null drop table [test]create table [test]([AA] varchar(1),[BB] varchar(4),[CC] int)insert [test]select 'X','0101',100 union allselect 'X','0102',30 union allselect 'T','0101',40 union allselect 'G','0102',60 union allselect 'F','0101',10 union allselect 'F','0102',15select [AA],[BB],case when [BB]='0101' then [CC] when ([BB]='0101' or BB='0102') and (select COUNT(1) from test b where a.AA=b.AA)=1then  CC else 0  end  [CC]from test a/*AA    BB    CCX    0101    100X    0102    0T    0101    40G    0102    60F    0101    10F    0102    0*/
[解决办法]
探讨

这样查出来的结果第四行也为0了啊 ,实际上第四行是要原值的

读书人网 >SQL Server

热点推荐