下のコードで、CASE
ステートメントの結果を変数に代入しようとしています。私はそれが働いているが、私の問題は、私のCASE
ステートメントは、列名のエイリアスを持っているが、SQL Serverを使用して変数にエイリアスを持つcaseステートメントを割り当てる方法
また、その列にGRAND TOTALを取得するために変数をSUMにする必要があります。私はSQL Server 2014で作業しています。
私は解決策を見つけることができず、誰かが方向性/助けを提供できることを期待していました。前もって感謝します。ここで
が私のSQLコードです:あなたは値を代入しているときのような可変
SELECT DISTINCT a1.SCHYEAR, a1.LocationName as LOCATIONNAME, a1.GRADE, a1.[RACE/ETHNICITY],
@504Count=(
CASE
WHEN a1.StudentPermID IN (SELECT DISTINCT t4.Permnum FROM #504 t4) THEN COUNT(a1.StudentPermID)
END)AS '504',
@Non504SPEDCount =(
CASE
WHEN a1.STID NOT IN (SELECT DISTINCT t1.STID FROM #speds t1) THEN COUNT(a1.STID)
WHEN a1.StudentPermID NOT IN (SELECT DISTINCT t3.Permnum FROM #504 t3) THEN COUNT(a1.StudentPermID)
END) AS 'Non-504/Non-SPED',
@SPEDCount=(
CASE
WHEN a1.STID IN (SELECT DISTINCT t2.STID FROM #speds t2) THEN COUNT(a1.STID)
END) AS 'SPED',
a1.STID, a1.StudentPermID as PERMNUM, COUNT('504'), COUNT('Non-SPED'), COUNT('SPED'),
SUM(@504Count + @Non504SPEDCount + @SPEDCount) AS 'Grand Total'
FROM #allStudents a1
GROUP BY a1.SCHYEAR, a1.LocationName, a1.GRADE, a1.[RACE/ETHNICITY], a1.STID, a1.StudentPermID
ORDER BY a1.SCHYEAR, a1.LocationName, a1.GRADE, a1.[RACE/ETHNICITY], a1.STID, a1.StudentPermID
あなたはとして '入れて試してみました<..> 'かっこの外側か? – potashin
エイリアス名は、角括弧ではなく角括弧で指定します。しかし、この場合、エイリアス名は必要ありません。 – DineshDB
あなたの声明は私を混乱させる。 '504 'のような奇妙な列名は' [] ''ではなく '' ''に属しています。 'col IN(SELECT DISTINCT ...)'は区別できません。値を割り当てる選択されたステーションはデータを出力できません。 –