1つのテーブルにアイテムのリストがあります。これらのアイテムは、2種類の「A」または「M」3つのテーブルをマージするクエリSQL SERVER
表1
---------------------------------------------------------
| Code | Type | Description | Quantity | Cost |
|-------------------------------------------------------|
|BAG001_M| M | Some text here| 2.0 | 40.0 |
|BAG002_M| M | Some text here| 5.0 | 69.0 |
|CAY003_M| A | Some text here| 8.0 | 10.0 |
|CFI002_M| M | Some text here| 8.0 | 10.0 |
--------------------------------------------------------
のものであってもよい私は、メジャー(UOM)の単位を示すために別の列を持っている必要があります。この列は2つの異なる表にあります。それはUOMは表B
表A
-----------------------------------------------
| Code | Description | Currency | UoM |
|----------------------------------------------
|BAG001_M| Some text here| MXN | m2 |
|BAG002_M| Some text here| USD | lt |
|CFI002_M| Some text here| MXN | m3 |
-----------------------------------------------
表Bに位置しているタイプの場合アイテムはMを入力UOMは、一方では、表Aに位置している場合
-----------------------------------------------
| Code | Description | Currency | UoM |
|----------------------------------------------
|CAY003_M| Some text here| USD | kg |
-----------------------------------------------
このようなものが必要です。
-----------------------------------------------------------------
| Code | Type | Description | Quantity | Cost | UoM |
|---------------------------------------------------------------|
|BAG001_M| M | Some text here| 2.0 | 40.0 | m2 |
|BAG002_M| M | Some text here| 5.0 | 69.0 | lt |
|CAY003_M| A | Some text here| 8.0 | 10.0 | kg |
|CFI002_M| M | Some text here| 8.0 | 10.0 | m3 |
-----------------------------------------------------------------
小さな問題があります。同じコードであるがタイプが異なる2つのアイテムが存在する可能性があるため、別のUoMを持つ可能性があります。例えば。
-----------------------------------------------------------------
| Code | Type | Description | Quantity | Cost | UoM |
|---------------------------------------------------------------|
|AAA001_M| M | Some text here| 2.0 | 40.0 | m2 |
|AAA001_M| A | Some text here| 5.0 | 20.0 | lt |
-----------------------------------------------------------------
私はSQL Server 2012を使用しており、次のコードを試しました。それは最初の内部結合で働いたので、別のものを追加しようとしましたが、これはそれを行う方法ではないようです。
SELECT
CODE
,Type
,AD.DESCRIPTION
,QUANTITY
,AD.[COSTS]
,A.UOM
FROM
Table1 AS AD INNER JOIN TableA AS A
ON
CODE = CASE
WHEN Type = 'M'
THEN A.CODE
END
INNER JOIN TableB AS B
ON
Code = CASE
WHEN Type = 'A'
THEN B.CODE
END
誰かが私を助けてくれますか?ここで
をそれは完全に働きました。 ありがとうございます! –