SQL server Query Aid

Ich habe eine Abfrage in SQL server, um eine list von Reports zurückzugeben, es muss entweder eine characterfolge zurückgeben, die einen Standort repräsentiert, oder eine characterfolge, die den memory repräsentiert, auf den es verweist.

Das Problem ist, dass meine Abfrage nur Berichte zurückgibt, die auf eine memory-ID verweisen, anstatt alle Berichte und die relevanten Standortinformationen zurückzugeben. Ich bin überzeugt, dass es sich um eine dumme Syntax-Frage handelt, aber ich habe keine databasearbeit für eine Weile gemacht und kann es nicht scheinen, es herauszuholen. Ich habe verschiedene Möglichkeiten versucht, diese zu arbeiten, aber es weigert sich einfach.

SELECT rep.rep_id AS "RepId", Isnull(rep.rep_status, 'C') AS "RepStatus", Isnull(( loc.location_street + ' ' + loc.location_city ), store.Description) AS "Location", rep.date_reported AS "DateReported", rep.reported_by AS "ReportedBy" FROM Report rep JOIN Report_Location reploc ON reploc.rep_id = rep.rep_id JOIN Location loc ON loc.location_id = reploc.location_id LEFT JOIN Store store ON store.StoreID = loc.store_id; 

Ich habe versucht, die linke Verknüpfung zu entfernen und füge einfach hinzu wo loc.store_id = store.StoreID oder loc.store_id IS NULL. Weder gearbeitet Vielen Dank im Voraus für Ihre Hilfe.

Sie müssen LEFT OUTER JOIN anstelle von Inner Join

 SELECT rep.rep_id AS "RepId", Isnull(rep.rep_status, 'C') AS "RepStatus", Isnull(( loc.location_street + ' ' + loc.location_city ), store.Description) AS "Location", rep.date_reported AS "DateReported", rep.reported_by AS "ReportedBy" FROM Report rep LEFT JOIN Report_Location reploc ON reploc.rep_id = rep.rep_id LEFT JOIN Location loc ON loc.location_id = reploc.location_id LEFT JOIN Store store ON store.StoreID = loc.store_id; 

Erreichen Sie die linke äußere Verknüpfung:

 SELECT rep.rep_id AS RepId, ISNULL(rep.rep_status, 'C') AS RepStatus, ISNULL(loc.location_street + ' ' + loc.location_city, store.Description) AS Location, rep.date_reported AS DateReported, rep.reported_by AS ReportedBy FROM Report AS rep LEFT OUTER JOIN Report_Location AS reploc ON reploc.rep_id = rep.rep_id LEFT OUTER JOIN Location AS loc ON loc.location_id = reploc.location_id LEFT OUTER JOIN Store AS store ON store.StoreID = loc.store_id