1

以下のコードは、私が作成したクエリの結果です。1 つのことを除けば、すべて正常に動作します。マテリアル名のマテリアル ID があります。

1 = bath
2 = sink
3 = toilet

以下は機能しますが、すべてのマテリアルのシンクを表示します

Select cu.FName + '  ' + cu.SName as 'Name', 
cu.Address1 + ', ' + cu.Address2 + ', ' + cu.Address3 as 'Dispatch Address', 
cu.PostCode, 
co.DateOrdered,
co.Material1,
ma.MaterialName,
co.material2, 
ma.MaterialName, 
ma.Price as 'Item Price' 
from Customers cu 
left join CustomerOrder co on co.CustomerID = cu.CustomerID
left join ItemOrder it on it.OrderID = co.OrderID 
left join Materials ma on ma.MaterialID = co.Material1 
or co.material2 = ma.MaterialItemID or co.material3 = ma.MaterialItemID

次のように表示されます(混乱を避けるために、材料だけがリストされています)

Material1 | MaterialName | Material2 | Material2Name | Material3 | Material3Name
    1          Sink            2           Sink           3             Sink

誰でもこれを手伝ってもらえますか?

4

1 に答える 1

2

テーブルで複数回使用JOINして結果を取得するなど、これを行うにはいくつかの方法があります。materials

Select cu.FName + '  ' + cu.SName as 'Name', 
    cu.Address1 + ', ' + cu.Address2 + ', ' + cu.Address3 as 'Dispatch Address', 
    cu.PostCode, 
    co.DateOrdered,
    co.Material1,
    ma1.MaterialName Material1Name,
    co.material2, 
    ma2.MaterialName Material2Name, 
    ma1.Price as 'Item Price',
    co.material3, 
    ma3.MaterialName  Material3Name
from Customers cu 
left join CustomerOrder co 
    on co.CustomerID = cu.CustomerID
left join ItemOrder it 
    on it.OrderID = co.OrderID 
left join Materials ma1 
    on ma1.MaterialID = co.Material1 
left join Materials ma2 
    on co.material2 = ma2.MaterialItemID
left join Materials ma3 
    on co.material3 = ma3.MaterialItemID
于 2012-11-07T16:18:53.730 に答える