求语句。。。。。。。。
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*/
[解决办法]