我有几个表需要链接在一起以获取特定值,这是我当前的查询
SELECT DISTINCT bu.Email,iv.Code,ex.ExNumber
FROM Invoices AS iv
INNER JOIN Clients AS cs
ON iv.Code = cs.Code
INNER JOIN BusinessUser_ExNumbers AS ex
ON cs.ExNumber = ex.ExNumber
INNER JOIN BusinessUsers AS bu
ON ex.Userid = bu.Id
WHERE iv.BatchId = '74b43669-c80f-4b44-999c-a1dfe5695844' // Test value
基本上我发票的链接保存在发票表中,我需要做的是发送一个链接给指定为发票收件人的用户。代码可以工作,但它并不像我想的那样“独特”。我不希望任何行具有相同的电子邮件,并且与任何其他行相同。不幸的是,如果有超过1个iv.Code最终链接到特定用户,我会得到多行。我明白为什么会这样,但我想不出办法让这种情况不会发生。
谢谢!
编辑:抱歉这对我来说真的很蠢。我不需要选择iv.Code,这就是导致问题的原因。这可能就是为什么它没有多大意义。无论如何,因为我发布了问题,我已经尝试过马丁史密斯回答下面的问题并且它有效,所以这就是问题的答案。如果您不需要iv.Code,则可以将其删除。答案 0 :(得分:1)
如果特定MAX
组合有多个代码,则以下内容会返回Email, Number
代码。
SELECT bu.Email,
MAX(iv.Code) AS Code,
ex.ExNumber
FROM Invoices AS iv
INNER JOIN Clients AS cs
ON iv.Code = cs.Code
INNER JOIN BusinessUser_ExNumbers AS ex
ON cs.ExNumber = ex.ExNumber
INNER JOIN BusinessUsers AS bu
ON ex.Userid = bu.Id
WHERE iv.BatchId = '74b43669-c80f-4b44-999c-a1dfe5695844'
GROUP BY bu.Email,
ex.ExNumber