私はストアドプロシージャに計算フィールドを作成しようとしています。私はprojectID
の列と、影響を受けた領域に対応する 'はい'または 'いいえ'の値を持つ3列を持っています。私はすべての 'yes'の値を収集し、対応する領域の名前をRegionImpacted
という新しいフィールドに挿入する必要があります。影響を受ける地域は複数ある可能性があります。他の3つのフィールドから計算されたフィールドT-SQL
0
A
答えて
0
入れ子になったcase文では示唆している動作しますが、あなたはその複雑さは指数関数的に増加するため、追加の領域を追加する必要がある場合、彼らは非常に迅速に非常に複雑になります。ネストされたケース・ステートメント・ソリューションを実装する前に、たとえば6つのリージョンでどのように見えるかを考えてください。私は、連結されたcase文のアプローチを好む。
DECLARE @Region1 CHAR(3)
, @Region2 CHAR(3)
, @Region3 CHAR(3)
, @Result VARCHAR(128)
SET @Region1 = ' NO'
SET @Region2 = ' NO'
SET @Region3 = ' NO'
SELECT Regions = CASE WHEN (@Region1 = ' NO'
AND @Region2 = ' NO'
AND @Region3 = ' NO'
) THEN 'None'
ELSE CASE @Region1
WHEN 'YES' THEN 'Region1 '
ELSE ''
END
+ CASE @Region2
WHEN 'YES' THEN 'Region2 '
ELSE ''
END
+ CASE @Region3
WHEN 'YES' THEN 'Region3 '
ELSE ''
END
END
0
次のような音がします。それをあなたの列に書式化し、何を表示するかを指定する必要があります。他の人のように
case when [apac]='YES' then
case when [latam]='YES' then
case when [emea]='YES' then 'A/L/E'
else 'A/L' end
else
case when [emea]='YES' then 'A/E'
else 'A' end
end
else
case when [latam]='YES' then
case when [emea]='YES' then 'L/E'
else 'L' end
else
case when [emea]='YES' then 'E'
else 'NONE' end
end
end
0
私が正しくあなたを理解していれば
declare @T table (ID int, APAC varchar(3), LATAM varchar(3), EMEA varchar(3))
insert into @T values
(1, 'No', 'No', 'No'),
(2, 'Yes', 'No', 'No'),
(3, 'No', 'Yes', 'Yes'),
(4, 'Yes', 'Yes', 'Yes')
select
ID,
APAC,
LATAM,
EMEA,
coalesce(stuff(
case when APAC = 'Yes' then ',APAC' else '' end +
case when LATAM = 'Yes' then ',LATAM' else '' end +
case when EMEA = 'Yes' then ',EMEA' else '' end,
1, 1, ''), 'none') as RegionNames
from @T
結果
ID APAC LATAM EMEA RegionNames
----------- ---- ----- ---- ----------------
1 No No No none
2 Yes No No APAC
3 No Yes Yes LATAM,EMEA
4 Yes Yes Yes APAC,LATAM,EMEA
+0
しかし、表示する方法はありますか"none"すべての地域がNoと答えた場合。 – Avinash
+0
@Avinashはい。更新された答え。 –
関連する問題
- 1. ハードコアのフィールドとTSQLの計算フィールド
- 2. SSRS: '計算された'フィールドの計算%
- 3. モンゴースの他の2つのフィールドに基づく第3フィールドの計算
- 4. ArcGIS:他のフィールドからのフィールド値の自動計算
- 5. Sharepoint計算されたフィールド
- 6. ネストされたデータから計算されたフィールド
- 7. 計算されたフィールド上のZeoslibループ
- 8. 計算されたフィールドの平均値
- 9. 計算されたフィールドとの対比
- 10. ピボットテーブルカウントされた列の計算フィールドと合計された列
- 11. 計算されたフィールドの日数の差を計算する
- 12. アクセス:他のテーブルの計算フィールド
- 13. 計算されたone2manyフィールドの計算方法odoo
- 14. Scrapyの他のファイルから計算されるフィールドを追加する場所
- 15. ピボットテーブル計算されたフィールド - 2つの日付間のSumif(s)?
- 16. SharePointリストと計算されたフィールド
- 17. 計算されたフィールドをeveスキーマ
- 18. MVCで計算されたフィールド
- 19. xpagesで計算されたフィールド値
- 20. Solr計算された価格フィールド
- 21. Django:計算されたフィールドでフィルタリング
- 22. 他のテーブルのテーブルの1つのフィールドを計算する
- 23. 動的フォームの3入力フィールドから計算するyii2
- 24. datagridviewからのフィールドの再計算
- 25. 計算されたフィールドを持つSQL結合テーブル
- 26. PowerPivotの計算フィールド
- 27. 計算フィールド
- 28. ピボットテーブル、計算フィールド
- 29. スプリングブート - 計算フィールド
- 30. 2つのフィールドから値を取得し、第3フィールドで乗算を表示
あなたが複数の領域が影響を受けているときには、単一の列に挿入するのでしょうか? –
あなたがこれまでに持っているものを教えてください...カップルのテーブルとカラムは良いでしょう。 – DefyGravity
地域はAPAC、LATAM、EMEAです。新しいフィールドにはいを付けて列名を取得する必要があります。 Projectsと呼ばれるテーブルです。プロジェクトIDは4列あり、これらの3つの領域は「はい」または「いいえ」です。はいを付けて領域の名前を持つ4番目のフィールドを作成する必要があります。 – Avinash