如果问题本身没有多大意义,我很抱歉,但让我解释一下。
我有两张桌子:医学和捐赠
医学有:id_medicine 医学 量
和捐款有:
id_donation id_medicine 量
我想要的是一个查询,向我显示可用药物的总量。
我有这个问题:
SELECT Medicine.name AS 'Medicine', Medicamento.quantity + Donation.quantity AS Quantity
FROM Donation
INNER JOIN medicine ON donation.cod_medicine = Medicine.cod_medicine
ORDER BY 'Medicine'
但是这只显示了捐赠的药物,如果药物没有一次捐赠,那么它就不会出现。那么,再次,即使没有捐赠,我怎样才能获得每种药物的总量?谢谢!
答案 0 :(得分:1)
您可以使用NVL函数进行外部联接(假设它是Oracle数据库):
SELECT Medicine.name AS 'Medicine', Medicamento.quantity + NVL(Donation.quantity, 0) AS Quantity
FROM Donation
LEFT OUTER JOIN medicine ON donation.cod_medicine = Medicine.cod_medicine
ORDER BY 'Medicine'
如果是SQL Server,请将NVL
替换为ISNULL
NVL或ISNULL函数用于将null值替换为其他函数,函数的第二个参数,此处为0。
答案 1 :(得分:1)
试试这个
SELECT
Medicine.name AS Medicine
, Medicine.quantity + COALESCE(Donation.quantity, 0) AS Quantity
FROM Medicine
LEFT JOIN Donation ON donation.id_medicine = Medicine.id_medicine
ORDER BY Medicine