Ich habe eine Liste von Elementen in einer Tabelle. Diese Gegenstände könnten zwei Typen ‚A‘ oder ‚M‘Abfrage zum Zusammenführen von 3 Tabellen SQL SERVER
Tabelle 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 |
--------------------------------------------------------
Ich brauche eine andere Spalte haben, die Maßeinheit (UoM) zu zeigen. Diese Spalte befindet sich in zwei verschiedenen Tabellen. Wenn ein Artikel Typ M die UoM in Tabelle A befindet, in der anderen Seite, wenn es ein Typ der UoM in Tabelle B befindet
Tabelle 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 |
-----------------------------------------------
Tabelle B
-----------------------------------------------
| Code | Description | Currency | UoM |
|----------------------------------------------
|CAY003_M| Some text here| USD | kg |
-----------------------------------------------
Ich muss so etwas haben.
-----------------------------------------------------------------
| 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 |
-----------------------------------------------------------------
Es gibt ein kleines Problem. Es könnte zwei Einträge mit dem gleichen Code aber einem anderen Typ geben, sodass sie möglicherweise eine andere ME haben. Beispielsweise.
-----------------------------------------------------------------
| 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 |
-----------------------------------------------------------------
Ich benutze SQL Server 2012 und habe den folgenden Code ausprobiert. Es hat mit dem ersten inneren Join funktioniert, also habe ich versucht, einen anderen hinzuzufügen, aber es scheint, dass dies nicht die Art ist, es zu tun.
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
Kann mir hier jemand helfen?
Es funktionierte perfekt. Vielen Dank! –