0

誰かが助けてくれることを願っているいくつかの派生テーブルに少し問題があります。私が持っているのは、選択ステートメント内の2つの派生テーブルで、ピボットを使用して結果を垂直ではなく水平に表示します。

私がこれまでに持っているものは次のとおりです。

SELECT * FROM(
SELECT SUM(Value) AS TotDays, ClassId FROM MainTable GROUP BY ClassId)
Union All
SELECT SUM(NumDays) As TotDays, ClassId FROM (
SELECT CASE WHEN COUNT(SiteId) > 0 THEN 1 ELSE 0 END AS NumDays
  FROM Table2 GROUP BY ClassId ) as SUB
) AS a
PIVOT (SUM(TotDays) FROM ClassId
   IN ([12],[13],[14],[15]

私がやろうとしているのは、SELECT * を使用するのではなく、個々の列を参照することですが、その方法がわかりません。ユニオン以降のすべてを削除しても機能しませんが、ユニオンを入れると機能せず、SELECT *を使用する必要があります。

誰が何がうまくいかないのかについて何か考えがありますか?

ありがとう

アレックス

4

1 に答える 1

0

クエリにいくつかのエラーがあります。たとえば、UNION ALL列数が異なるセットがあり、他の構文エラーがあるとします。この方法を試してください:

SELECT  [12],[13],[14],[15]
FROM (  SELECT SUM(Value) AS TotDays, ClassId 
        FROM MainTable 
        GROUP BY ClassId
        UNION ALL
        SELECT SUM(NumDays) As TotDays, ClassId 
        FROM (  SELECT  CASE WHEN COUNT(SiteId) > 0 THEN 1 ELSE 0 END NumDays, 
                        ClassId
                FROM Table2 
                GROUP BY ClassId) as SUB
    ) AS a
PIVOT (SUM(TotDays) FROM ClassId IN ([12],[13],[14],[15])) AS PT
于 2013-02-18T16:38:17.347 に答える