0

皆さん、こんにちは。次のクエリがあります。

SELECT B.fld_ActionName,
    ISNULL(A.COUNT, 0) count,
    ISNULL(A.GRAMS, 0) grams,
    ISNULL(A.PRINCIPAL, 0) principal
FROM #PULLEDOUT A
RIGHT JOIN Reference.tbl_RefAction B
    ON A.OSD = B.fld_ActionID
WHERE B.fld_ActionID IN (100, 200, 360, 454, 457)

B.fld_ActionNameon という単語を次のように from と to に変換したい

New         (still the same no change)
Checked     (still the same no change)
For Recall -->recall
EL -->indexed EL
Watch -->Scrap watch

出来ますか?はいの場合、どのように?ケースがこれに当てはまるかどうかは本当にわかりません。TSQL は初めてで、実装方法がわかりません。

ありがとうございました

4

2 に答える 2

2
SELECT 
    CASE
        WHEN B.fld_ActionName IN ('New','Checked') THEN B.fld_ActionName
        WHEN B.fld_ActionName 'For Recall' THEN 'recall'
        WHEN B.fld_ActionName 'EL' THEN 'indexed EL'
        WHEN B.fld_ActionName 'Watch' THEN 'Scrap watch'
    END,
    ISNULL(A.COUNT,0) count,
    ISNULL(A.GRAMS,0) grams,
    ISNULL(A.PRINCIPAL,0) principal
FROM #PULLEDOUT A
     RIGHT JOIN Reference.tbl_RefAction B
         ON A.OSD =B.fld_ActionID
WHERE B.fld_ActionID in (100,200,360,454,457)
于 2013-10-09T08:49:06.813 に答える
1

これを試して:

SELECT
  CASE b.fld_ActionName
   WHEN 'For Recall' THEN 'recall'
   WHEN 'EL' THEN 'indexed EL'
   WHEN 'Watch' THEN 'Scrap watch'
   ELSE b.fld_ActionName 
  END AS 'Action',
  ISNULL(A.COUNT,0) AS 'count',
  ISNULL(A.GRAMS,0) AS 'grams',
  ISNULL(A.PRINCIPAL,0) AS 'principal' 
FROM #PULLEDOUT A
RIGHT JOIN Reference.tbl_RefAction B
ON A.OSD =B.fld_ActionID
WHERE B.fld_ActionID in (100,200,360,454,457)
于 2013-10-09T08:51:33.447 に答える