Rumah > pangkalan data > tutorial mysql > Mengapakah Bahagian Luar Kiri Saya Tidak Mengembalikan Semua Wakil Jualan Apabila Saya Menapis Mengikut Tarikh?

Mengapakah Bahagian Luar Kiri Saya Tidak Mengembalikan Semua Wakil Jualan Apabila Saya Menapis Mengikut Tarikh?

Patricia Arquette
Lepaskan: 2025-01-17 14:22:10
asal
310 orang telah melayarinya

Why Doesn't My Left Outer Join Return All Sales Representatives When I Filter by Date?

Selesaikan masalah penapisan tarikh dalam gabungan luar kiri kiri SQL

Dalam pertanyaan SQL anda, gabungan luar kiri tidak mengembalikan hasil yang dijangkakan. Khususnya, apabila anda memasukkan parameter tarikh dalam klausa WHERE, wakil jualan yang tidak mempunyai data yang sepadan dalam jadual sebelah kanan tidak dipaparkan.

Untuk menyelesaikan masalah ini, anda perlu mengalihkan kekangan tarikh jadual prescriptions ke dalam keadaan ON cantuman dan bukannya menyimpannya dalam klausa WHERE:

<code class="language-sql">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
                             AND prescriptions.filldate >= '09-01-12'
                             AND prescriptions.filldate <= '09-17-12'
ORDER BY prescriptions.filldate</code>
Salin selepas log masuk

Dengan mengalihkan kekangan ke dalam keadaan ON, anda boleh memastikan gabungan luar kiri mengembalikan hasil dengan betul untuk semua wakil jualan, tidak kira sama ada rekod padanan wujud dalam jadual prescriptions.

Atas ialah kandungan terperinci Mengapakah Bahagian Luar Kiri Saya Tidak Mengembalikan Semua Wakil Jualan Apabila Saya Menapis Mengikut Tarikh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan