我正在尝试在查询中加入3个表。情况如下:
我有两张桌子(铭文和费用),在第三张桌子上有二级钥匙。
我可以在账单上找到铭文和费用。我可以将铭文与账单相关联,但不能将费用与铭文联系起来。
当放置铭文时,有一些费用适用于该铭文加上铭文价格本身。 BillID可以同时使用铭文价格和费用。
表账单是中间人。我相信,如果我有一个BillID,我可以将费用分配给题词。但这是我的挑战。
select
*
from bills i
left join Inscription ip
on ip.Idinscription = i.IDinscription
left join fees f
on f.IDfee = i.Idfee
当我有IDfee时,IDinscription为null,当我有IDinscription时,IDfee也为空。账单和费用都有相同的IDbill。
答案 0 :(得分:0)
EDIT 尝试运行以下内容:
SELECT DISTINCT * FROM bills i
LEFT JOIN inscription ip
ON ip.idInscription = i.idInscription
LEFT JOIN fees f ON f.idFee = i.idFee
WHERE i.idFee IS NOT NULL AND i.idInscription IS NOT NULL
此查询将向您显示与每个铭文相关的费用。我相信你的数据库结构非常有条理。一个铭文有一个账单,每个账单都有很多费用。
答案 1 :(得分:0)
你可以这样试试:
SELECT b.idbill, p.idinscription, f.idfee
FROM bills b
INNER JOIN
(SELECT idinscription
FROM inscription
WHERE idinscription IS NOT NULL) p ON b.idinscription = p.idinscription
INNER JOIN
(SELECT idfee
FROM fee
WHERE idfee IS NOT NULL) f ON b.idfee = f.idfee
答案 2 :(得分:0)
选择不同的*从我离开的账单加入Inscription ip on ip.Idinscription = i.IDinscription left join fee f on f.IDfee = i.Idfee其中i.idfee不为null且i.idinscription不为null给你一个语法问题? - Joseph Cho 20分钟前
谢谢Joseph Cho先生。您的查询回答了我的问题。我要将我的sql结果移动到SSRS。谢谢 - 祝福2分钟前编辑