Я использую sql server и использую стандарт ANSI-89.
- Я хочу показать название типа транспорта на каждом из элементов заказа вместе с деталями элемента
- код транспорта можно установить в заказе или в отдельном элементе заказа.
- Транспортный код в позиции заказа предшествует коду в таблице заказа, если он присутствует.
- Если для Order или OrderItem не задан транспортный код, мне все равно нужно получить элемент заказа.
тип транспорта - это соединение с таблицей транспорта на типе транспорта.заказ или элемент заказа объединяются с транспортной таблицей в транспортном коде.
Как выполнить условное объединение, если возможно получить имя транспортного типа для каждого элемента заказа, каков правильный подход для использования здесьчтобы я мог выбрать транспортный код для order или order_item соответственно и присоединиться к транспортной таблице?
Order
-----
orderNo (PK)
country NOT NULL
transportCode NULL
OrderItems
----------
OrderNo (PK)
orderItemNo (PK)
transport_code NULL
Transport
---------
trasportcode (PK)
transportname NOT NULL
transporttypecode NOT NULL
transportType
-------------
transporttypecode (PK)
transporttypename NOT NULL
SAMPLE DATA
Order
OrderNo Country TransportCode
1 USA ST1
2 ENGLAND
Order Item
Order No orderItemNo itemname transportCode
1 1 cooker ST2
1 2 scissor
2 1 stapler
2 2 pencil ST3
2 3 bottle
Transport
transportcode name transporttypecode
ST1 INS BUTTERFLY W
ST2 LUFTHANSA A
ST3 TRANS SIBERIAN RAIL RL
TransportType
Transporttypecode name
W Water
A Air
RL Rail
Output
Order No orderItemNo itemname transportName transporttypeName
1 1 cooker LUFTHANSA Air
1 2 scissor INS BUTTERFLY Water
2 1 stapler
2 2 pencil TRANS SIBERIAN RAIL Rail
2 3 bottle