0

どうすれば変換できますか:

round(DECODE(PC_TTL.WAGETYPE, 3085, PC_TTL.WORKHOURS, DECODE(PC_TTL.UNIT, '010', PC_TTL.WORKHOURS/8, PC_TTL.WORKHOURS)) , 2)

SQL サーバーの構文に?

4

2 に答える 2

0

単純な case ステートメントを使用してそれを行うことができます。

    ROUND (
CASE
    WHEN PC_TTL.WAGETYPE = 3085  THEN PC_TTL.WORKHOURS
    WHEN PC_TTL.UNIT     = '010' THEN PC_TTL.WORKHOURS / 8
    ELSE PC_TTL.WORKHOURS
END, 2 )
于 2013-04-25T21:05:36.580 に答える
0

ロジックを誤解していない限りDECODE、これでうまくいくはずです:

ROUND(
  CASE WHEN PC_TTL.WAGETYPE = 3085 THEN PC_TTL.WORKHOURS
  ELSE
    CASE WHEN PC_TTL.UNIT = '010' THEN PC_TTL.WORKHOURS/8
    ELSE PC_TTL.WORKHOURS
    END
  END, 2)

これは、SQL ServerOracle で機能します。

于 2013-04-25T20:15:35.763 に答える