Rumah  >  Soal Jawab  >  teks badan

SQL SUM daripada dua nilai lajur didarab dengan julat tarikh

Soalan yang perlu saya jawab ialah "Berapakah jumlah kos pemberian morfin kepada pesakit bernama 'John Smith'

?"

Dalam skema pangkalan data saya, saya mempunyai skema berikut:

Patient (patientNo, patName, patAddr, DOB)
Ward (wardNo, wardName, wardType, noOfBeds)
Contains (patientNo, wardNo, admissionDate)
Drug (drugNo, drugName, costPerUnit)
Prescribed (patientNo, drugNo, unitsPerDay, startDate, finishDate)

Saya mencipta skema sampel untuk perkara di atas di sini: https://www.db-fiddle.com/f/wecC7cjtryKMErqPskNr41/1

Bagaimana untuk membina pertanyaan untuk mendarabkan costPerUnit*unitsPerDay dengan bilangan hari antara tarikh mula dan tarikh selesai tanpa mengira bilangan hari secara manual?

Pada masa ini saya mempunyai:

SELECT SUM r.unitsPerDay*d.costPerUnit BETWEEN '2022-05-25' AND '2022-06-25' AS TotalCost, p.patName, d.drugName
FROM Prescribed r, Drug d, Patient p
WHERE p.patientNo=r.patientNo AND d.drugNo=r.drugNo AND r.drugNo=1001;

Daripada:

insert into Drug (drugNo, drugName, costPerUnit) values (1001, 'Morphine', '25.00');
insert into Patient (patientNo, patName, patAddr, DOB) values (101, 'John Smith', '123 Street', DATE '1990-01-01');
insert into Prescribed (patientNo, drugNo, unitsPerDay, startDate, finishDate) values (101, 1001, 4, DATE '2022-05-25', DATE '2022-06-25');

P粉129168206P粉129168206183 hari yang lalu380

membalas semua(1)saya akan balas

  • P粉517814372

    P粉5178143722024-03-31 21:25:12

    Cuba pertanyaan ini:

    SELECT SUM (r.unitsPerDay*d.costPerUnit*(finishDate-startDate)) AS TotalCost, p.patName, d.drugName
    FROM Prescribed r, Drug d, Patient p
    WHERE p.patientNo=r.patientNo AND d.drugNo=r.drugNo AND r.drugNo=1001;

    balas
    0
  • Batalbalas