补记录
SQL code
意思就是把表B中缺少的对应的表A(字典表)里的一一补上。
谢谢~~!
表A code name COD a SO2 b NO2 c 表B EnterName code 2010 2011 a COD 1 2 b SO2 1 3 结果 EnterName code 2010 2011 a COD 1 2 a SO2 0 0 a N02 0 0 b COD 1 3 b S02 0 0 b N02 0 0
意思就是把表B中缺少的对应的表A(字典表)里的一一补上。
谢谢~~!
作者: lzfrab 发布时间: 2011-06-16
结果刚写错了,重新补上
SQL code
谢谢~~
SQL code
结果 EnterName code 2010 2011 a COD 1 2 a SO2 0 0 a N02 0 0 b COD 0 0 b S02 1 3 b N02 0 0
谢谢~~
作者: lzfrab 发布时间: 2011-06-16
SQL code
select a.name as EnterName,a.code,isnull(b.[2010],0),isnull(b.[2011],0) from 表A a left join 表b b on a.name+a.code=b.EnterName+b.code where exists(select 1 from 表b where a.name=b.EnterName )
作者: ssp2009 发布时间: 2011-06-16
SQL code
declare @表A table (code varchar(3),name varchar(1)) insert into @表A select 'COD','a' union all select 'SO2','b' union all select 'NO2','c' declare @表B table (EnterName varchar(1),code varchar(3),[2010] int,[2011] int) insert into @表B select 'a','COD',1,2 union all select 'b','SO2',1,3 select isnull(bb.EnterName,aa.EnterName), isnull(bb.code,aa.code), isnull([2010],0), isnull([2011],0) from ( select a.code,b.EnterName from @表A a cross join @表B b ) aa left join @表B bb on aa.code=bb.code and aa.EnterName=bb.EnterName order by aa.EnterName /* a COD 1 2 a SO2 0 0 a NO2 0 0 b COD 0 0 b SO2 1 3 b NO2 0 0 */
作者: maco_wang 发布时间: 2011-06-16