ここでは、ファンキーな丸めの問題があると思いますが、内部SQLの仕組みはわかりません。多分誰かが助けることができます。数値の割合を取得する
SELECT COUNT(Id) TotalReferrals,
SUM(CASE WHEN NHSCommunicationNeed1_Id IS NOT NULL THEN 1 ELSE 0 END) NHSCommNeed1Total,
SUM(CASE WHEN NHSCommunicationNeed2_Id IS NOT NULL THEN 1 ELSE 0 END) NHSCommNeed2Total,
SUM(CASE WHEN NHSCommunicationNeed3_Id IS NOT NULL THEN 1 ELSE 0 END)
NHSCommNeed3Total
INTO #Totals
FROM DDS.Referrals
は、以下の結果は、私がこれを行うときに
SELECT
SUM((NHSCommNeed1Total/TotalReferrals) * 100) NHSCommNeed1Percent,
SUM((NHSCommNeed2Total/TotalReferrals) * 100) NHSCommNeed2Percent,
SUM((NHSCommNeed3Total/TotalReferrals) * 100) NHSCommNeed3Percent
FROM #Totals
が、私はこれを取得
TotalReferrals NHSCommNeed1Total NHSCommNeed2Total NHSCommNeed3Total
1008 1008 508 508
を設定する私を与えますか? NHSCommNeed1Total/(TotalReferrals
の結果は整数として計算され
NHSCommNeed1Percent NHSCommNeed2Percent NHSCommNeed3Percent
100 0 0
おかげで動作するはずです。 #totalsに挿入してDDS.Referralsをクエリする必要はありません。 –
これらを挿入する代わりに、最初のクエリを別のselectでラップし、そこに集約します。 @BenDonnelly – sagi
代わりに、 'CASE'式で' THEN 1.0 ELSE 0 END'を修正することができます。 –