4

次のようなデータがあります。

データ

そして、PONo、PartNo、および TrinityID フィールドに値を含めてカウントし、次のようなデータを出力したいと考えています。

望ましい出力

SQLでこのカウントを行うにはどうすればよいですか?

4

2 に答える 2

5
select 
 Job_number, Item_code,
 case when RTRIM(PONo) = '' or PONo is null then 0 else 1 end +
 case when RTRIM(PartNo) = '' or PartNo is null then 0 else 1 end +
 case when RTRIM(TrinityID) = '' or TrinityID is null then 0 else 1 end 
 as [Count]
from YourTable
于 2012-08-23T21:37:39.980 に答える
1

これを試して:

select Job_Number = t.Job_Number ,
       Item_Code  = t.Item_Code  ,
       "Count"    = sum( case ltrim(rtrim(coalesce( PONo      , '' ))) when '' then 0 else 1 end
                       + case ltrim(rtrim(coalesce( PartNo    , '' ))) when '' then 0 else 1 end
                       + case ltrim(rtrim(coalesce( TrinityID , '' ))) when '' then 0 else 1 end
                       )
from dbo.my_table t
group by t.Job_Number , t.Item_Code

テストされたすべてのフィールドがnullまたは空であるデータを除外する場合は、次のhaving句を追加します。

having sum( case ltrim(rtrim(coalesce( PONo      , '' ))) when '' then 0 else 1 end
          + case ltrim(rtrim(coalesce( PartNo    , '' ))) when '' then 0 else 1 end
          + case ltrim(rtrim(coalesce( TrinityID , '' ))) when '' then 0 else 1 end
          ) > 0

簡単!

于 2012-08-23T21:46:06.977 に答える