SQL SUM daripada dua nilai lajur didarab dengan julat tarikh
P粉129168206
P粉129168206 2024-03-30 22:37:08
0
1
433

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粉129168206
P粉129168206

membalas semua(1)
P粉517814372

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;
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan