首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求语句。解决办法

2012-05-09 
求语句。。。。。。。。A表中有一下数据字段 AA字段 BB字段 CCX0101100X010230T010140G010260F010110F010215需要查

求语句。。。。。。。。
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了啊 ,实际上第四行是要原值的

热点排行