両方の結合に LEFT OUTER JOIN を使用して、3 つのテーブルからデータを取得するクエリがあります。右の 2 つのテーブル (それぞれ処方者と処方箋) に対応するデータがない場合でも、左端 (Salesrep テーブル) の情報を返すクエリが必要です。WHERE 句に日付パラメーターを指定せずにこのクエリを実行すると、期待どおりの結果が得られますが、日付パラメーターを含めるとすぐに、営業担当者に一致するデータがない場合は何も返されません。少なくとも、クエリで要求された salesrep テーブルの列を確認する必要があります。
これがクエリです...どんな助けでも大歓迎です。
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