So I have a table for every item in my sales order, which contains the item ID or just a description if it's not a real item, the table looks like this:
SalesOrderLine:
|ID | SOI_IMA_RecordID | SOI_LineNbrTypeCode | SOI_MiscLineDescription |
|1 | 2 | Item | XYZ |
|2 | NULL | GL Acct | Description |
|3 | NULL | GL Acct | Descrip |
|4 | 20 | Item | ABC |
What I want to do is, if it's not a real item (have the SOI_IMA_RecordID = NULL and/or SOI_LineNbrTypeCode = GL Acct) do not inner join with my Item table and get the SOI_MiscLineDescription instead of the item name (IMA_ItemName in my query).
My query is the following:
SELECT SOH_ModifiedDate,
SOM_SalesOrderID,
IMA_ItemName,
SOH_SOD_RequiredDate,
SOD_RequiredDate,
SOH_SOD_DockDate,
SOD_DockDate,
SOH_SOD_PromiseDate,
SOD_PromiseDate,
SOH_SOD_RequiredQty,
SOD_RequiredQty,
SOH_SOD_UnitPrice,
SOD_UnitPrice
FROM WSI_SOH SOH
INNER JOIN SalesOrderDelivery SOD ON SOH.SOH_SOD_RecordID = SOD.SOD_RecordID
INNER JOIN SalesOrder SO ON SO.SOM_RecordID = SOD.SOD_SOM_RecordID
INNER JOIN SalesOrderLine SOI ON SOI.SOI_RecordID = SOD.SOD_SOI_RecordID
INNER JOIN Item ITE ON ITE.IMA_RecordID = SOI.SOI_IMA_RecordID
How to do it?