Linke äußere Verbindung funktioniert nicht?
Ich habe eine Abfrage, die Daten aus drei Tabellen mit LEFT OUTER JOIN für beide Joins abruft. Ich benötige die Abfrage, um die Informationen ganz links (Salesrep-Tabelle) zurückzugeben, auch wenn die beiden rechten Tabellen (Verschreiber bzw. Verschreibungen) keine entsprechenden Daten enthalten. Wenn ich diese Abfrage ohne die Datumsparameter in der WHERE-Klausel ausführe, erhalte ich die erwartete Rückgabe, aber sobald ich die Datumsparameter einbeziehe, erhalte ich nichts zurück, wenn für einen Vertriebsmitarbeiter keine übereinstimmenden Daten vorliegen. Ich muss mindestens die Spalten der Salesrep-Tabelle sehen, die in der Abfrage angefordert wurden.
Hier ist die Frage ... jede Hilfe wird sehr geschätzt.
SELECT salesrep.salesrepid as SalesRepID,
salesrep.fname as SalesrepFName,
salesrep.lname as SalesRepLName,
salesrep.fname+' '+salesrep.lname as SalesRepFullName,
prescriber.dea_no as PDeaNo,
prescriber.lname+', '+prescriber.fname as DocName,
CONVERT(VARCHAR(8), prescriptions.filldate, 1) as FillDate,
prescriptions.drugname as DrugName,
prescriptions.daysupply as Supply,
prescriptions.qtydisp as QtyDisp,
prescriptions.rx_no as Refill,
prescriptions.copay as Sample,
ROUND(prescriptions.AgreedToPay-(prescriptions.AgreedToPay*.07),2) as AgreedToPay,
prescriptions.carrierid as CarrierID
FROM salesrep
LEFT OUTER JOIN prescriber on salesrep.salesrepid = prescriber.salesrepid
LEFT OUTER JOIN prescriptions on prescriber.dea_no = prescriptions.dea_no
WHERE salesrep.salesrepid = 143 AND
prescriptions.filldate >= '09-01-12' AND
prescriptions.filldate <= '09-17-12'
ORDER BY prescriptions.filldate