我有这样的架构
http://sqlfiddle.com/#!3/690e8
如何展示医生从未接受过检查的医生,医生姓名,医生电话和医生年(医生年)。
如何在一年的第12个月出示药品的药品名称,药品名称和药品价格。
如何显示药物,药品名称和药品价格(含美元),其中药品不是由doctorid =' dc001'出售。
如何显示病人,病人姓名和患病生育年(从患者产科年份开始)患者服用的病人年龄小于患者。
我的叔叔让我解决这个问题,即使我是一名数字艺术学生(这很复杂),老实说我几乎不知道mysql,只知道基本的东西。拜托,我恳请你帮我解决这些问题。我真的很感激!
答案 0 :(得分:0)
第一个问题
SELECT DoctorID, DoctorName, DoctorPhone, YEAR(DoctorBirthDate) as 'DoctorBirthYear'
FROM MsDoctor
WHERE DoctorID NOT IN (SELECT DoctorID FROM TransactionHeader);
第二个问题
SELECT MsMedicine.MedicineName, CONCAT(MsMedicine.MedicinePrice,' USD'), MsMedicineType.MedicineTypeName
FROM MsMedicine
INNER JOIN MsMedicineType ON MsMedicineType.MedicineTypeID = MsMedicine.MedicineTypeID
WHERE MedicineID IN (
SELECT MedicineID FROM TransactionDetail
WHERE TransactionID IN (
SELECT TransactionID from TransactionHeader
WHERE MONTH(TransactionDate) = 12
)
)
答案 1 :(得分:0)
1-如何显示医生从未接受过检查的医生,医生姓名,医生电话和医生年(医生年)。
select doctorid, doctorname, doctorphone , year(DoctorBirthDate) as doctorbirthyear
from msdoctor
where doctorid not in (select doctorid from transactionheader) ;
2-如何显示一年中第12个月销售的药品名称,药品名称和药品价格。
select medicinename, medicinetypename, medicineprice
from MsMedicineType mt, MsMedicine m , TransactionDetail td, TransactionHeader th
where mt.MedicineTypeID=m.MedicineTypeID and m.MedicineID=td.MedicineID and td.TransactionID=th.TransactionID and month(th.TransactionDate) = 12;
3-如何显示药品,药品名称和药品价格(含美元),其中药品不是由doctorid =' dc001'出售。
select medicinename, medicinetypename, concat(medicineprice,'$') as medicineprice
from MsMedicineType mt, MsMedicine m , TransactionDetail td, TransactionHeader th
where mt.MedicineTypeID=m.MedicineTypeID and m.MedicineID=td.MedicineID and td.TransactionID=th.TransactionID and th.DoctorID!='dc001';
4-如何显示病人,患者姓名和患者出生年份(从患者出生年份开始)患者服用的患者比患者年轻。
select p.patientid, p.patientname, year(PatientBirthDate) as patientbirthyear
from TransactionHeader th , msdoctor m, mspatient p
where th.DoctorID=m.DoctorID and th.PatientID=p.PatientID and PatientBirthDate>DoctorBirthDate;
希望这有帮助。