0

2つのテーブルを使用して結果セットを取得しようとしています

  1. 試算表
  2. エージング

テーブルの構造は次のとおりです。

エージング

loc    |    glAcct    |    Amount
-----------------------------------
1013   |     1101     |    200
-----------------------------------
1211   |     1102     |    300
-----------------------------------

試算表

loc   |    g1101    |   g1102
------------------------------
1013  |     20      |    30
------------------------------
1211  |     10      |    40
-----------------------------

今私がやろうとしているのは、行と列を一致させることです。

loc   |   glAcct    |    agigingAmount |  Trialbalance Amount
--------------------------------------------------------------
1013  |     1101    |      200         |        20
--------------------------------------------------------------
1211  |     1102    |      300         |        40
-------------------------------------------------------------     

私は次のようなケースステートメントを試しました

select ag.loc,ag.glAcct,
case
   when ag.glAcct = '1101' then select g1101 from trialbalance 
   when ag.glAcct = '1102' then select gl101 from trialbalance 
end  

 from trialbalance tb,Aging ag where ag.loc = tb.loc

しかし、それは機能していません。

前もって感謝します。

4

2 に答える 2

2

あなたはほとんどそこにいました:

SELECT ag.loc, ag.glAcct, ag.Amount AS agigingAmount
CASE ag.glAcct
   WHEN '1101' THEN tb.g1101
   WHEN '1102' THEN tb.g1102
END AS [Trialbalance Amount]
FROM Aging ag
INNER JOIN trialbalance tb on ag.loc = tb.loc
于 2012-09-14T07:39:16.030 に答える
1

これを試して:

SELECT ag.loc,
ag.glAcct, 
ag.Amount AS agigingAmount,
TrialbalanceAmount=
CASE ag.glAcct
   WHEN '1101' THEN tb.g1101
   WHEN '1102' THEN tb.g1102
END
FROM Aging ag,trialbalance tb 
WHERE ag.loc = tb.loc;

これが実際の例です

于 2012-09-14T07:56:44.893 に答える