当前位置: 代码迷 >> Sql Server >> 大家帮看看这个统计语句该如何写
  详细解决方案

大家帮看看这个统计语句该如何写

热度:97   发布时间:2016-04-24 09:45:48.0
大家帮看看这个统计语句该怎么写
table1表与table2表通过barcode关联
table1表字段     class,      name sex address,age ,barcode
table2表字段                      name sex address,age    ,barcode 
其中table2是从别处导进来的数据,table1是操作员手工录入的数据

表中存有若干班级的学生信息,现在想求某个班级的学生各字段的长度,
select  sum( len(name)+ len(sex)+ len(address)+ len(age) )   from table1 where class=@class

但是有个需求是根据条码barcode在table2中查找相应行,若是table1的某个字段的值与table2中的该字段的值相同则不计这个字段的长度,比如两个表中barcode都为0001的两条记录的name如果都是“张三”,就不计"张三"的长度,只计性别等其他字段的长度

我想不好该怎么写这个SQL语句,请大家帮忙。我不想用游标去循环逐一读取出来对比.



------解决思路----------------------
你参考一下
select  sum((CASE WHEN A.NAME<>B.name THEN len(A.name)ELSE 0 END)+ len(A.sex)+ len(A.address)+ len(A.age) )
from table1 A
LEFT JOIN table2 B ON A.barcode=B.barcode
where A.class=@class

------解决思路----------------------
#2更正:ON t2.barcode = t1.barcode
  相关解决方案