Here is the SQL Select that I found works. I am not 100% sure it is the correct one but it has no NULL and returns the query. Here is this SQL select:
select equipment.equip_id, equipment.equip_desc, trandetail.* from trandetail
left join orders on orders.order_no = trandetail.order_no and trandetail.order_no > 0 and LEN(ordersequip_id) > 0
join equipment on (trandetail.equip_pk > 0 and equipment.equip_pk = trandetail.equip_pk) or
(trandetail.order_no > 0 and equipment.equip_id = orders.equip_id)
The key is that I have JOIN EQUIPMENT only once and have it with an OR. If you see anything I am doing wrong, please let me know.
Thank you.
>I would at first not try for a single select, but to get the result set right and then (perhaps) try to streamline the SQL.
>Did not try to think your text through too much, but the main problem seems to be uncertain join criteria.
>So I'd first identify both sets needing different join criteria, do each join and then union them.
>
>Still hazy if the order needs to be checked if trandetail already has a direct join...
>
>
>>I need to create a SQL Select that would return the following query:
>>
>>EQUIPMENT.EQUIP_ID, EQUIPMENT.EQUIP_DESC, TRANDETAIL.* FROM TRANDETAIL --- JOINS
>>
>>Structure of tables (simplified):
>>
>>TRANDETAIL EQUIP_PK
>> ORDER_NO
>>
>>ORDERS ORDER_NO
>> EQUIP_ID
>>
>>EQUIPMENT EQUIP_ID Char(15) - Unique field
>> EQUIP_PK
>> EQUIP_DESC Char(40) - Equipment descriptoin
>>
>>
>>The challenge is that the SQL Select should select All Records from TRANDETAIL and records
>>from EQUIPMENT either by the field TRANDETAIL.EQUIP_PK Jointed with EQUIPMENT.EQUIP_PK
>>or by Joining ORDERS on ORDER_NO and then Joining EQUIPMENT on EQUIPMENT.EQUIP_ID with ORDERS_EQUIP_ID.
>>Therefore, it looks like I will have the table EQUIPMENT twice and this creates many NULL values.
>>
>>Is my explanation too confusing? Any suggestions?
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham