3
select req.code ,res.code,
case
( 
when (req.code==res.code) then 'pass'
when (req.code<>res.code) then 'fail'
/*....2 more case 'when' 'then' statements here*/
end ) result,

req.country ,res.country,

case (when then staments as above)result,
/*.......case stmts upto 70 statemnts*/
from requesttable req full outer join responsetable res on
req.id=res.id 
and ....some conditions.

すべての列を合計し、両方のテーブルのすべての列の合計とレコード数を同時に表示し、クエリにカウントを表示する方法を誰か教えてもらえますか?

私の結果はこのようなものでなければなりません

code  code1  result  sum     sum1    equivalence country country1 result1  sum    sum1
100   100    pass    200000  25000   fail        ind     aus      fail     800000 800000

equivalence
pass

2 つのテーブルを結合するレポートを作成しようとしています。これを実現するために、複数の case ステートメントを使用しています。両方のテーブルの各列の合計と各列の数を 1 つのレポートにまとめて表示したいと考えています。私が持っているクエリは次のタイプです。

4

1 に答える 1

1

これはあなたが探しているもののようなものだと思います。行に表示されるコードと国の値については、表示される組み合わせの合格と不合格の説明が得られ、集計が定義されている列に一意性があります。

Select  req.code, 
        res.code,
        Sum(Case When req.code = res.code) Then 1 Else 0 End) As [Pass],
        Sum(Case When req.code <> res.code) Then 1 Else 0 End) As [Fail],
        req.country, 
        res.country,
        Sum(Case When req.country = res.country) Then 1 Else 0 End) As [Pass],
        Sum(Case When req.country <> res.country) Then 1 Else 0 End) As [Fail]
From    requesttable req
Full    Outer Join responsetable res
        On  req.id = res.id
Where   ...
Group   By  req.code,
            res.code,
            req.country,
            res.country
于 2012-12-20T03:08:27.497 に答える