Rumah > Soal Jawab > teks badan
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粉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;