我有2个表;加入2表与哪里和MAX
TableSN
snID SerialNR Unit Version
1 123 A A1
2 456 A A2
TableDelivery
dID SerialNR Team
1 456 US
2 456 GE
3 456 FI
结果
snID SerialNR Unit Version Team
1 123 A A1
2 456 A A2 FI
我需要基于表格来获得TableSN and SerialNR
,其中上市版本中给出。在同一张表中,我需要显示最近为Team-column输入的data (= MAX(dID))
。当有Team-data可用时,我能够正确显示表格。
我的查询是这样的
SELECT TableSN.snID, TableSN.SerialNR, TableSN.Unit, TableSN.Version, TableDelivery.Team
FROM TableSN
LEFT OUTER JOIN TableDelivery ON TableDelivery. SerialNR = TableSN. SerialNR
LEFT OUTER JOIN (
SELECT SerialNR, MAX(dID) AS snRank
FROM TableDelivery AS TableDelivery _1
GROUP BY SerialNR
) AS NewTeam ON TableDelivery. SerialNR = NewTeam. SerialNR AND TableDelivery.dID = NewTeam.snRank
WHERE (TableSN.Version = @Version)
如何获得SerialNR
看到那里有没有可用的团队?
感谢您的指导和支持。
这是需要什么:
[
可以请你提一些有记录的表。 – mansi
TableSN.SerialNR应该始终可见,只要TableSN.Version = @Version为真 - 因为TableSN是您的第一个表,其他的都是LEFT加入到它 - 就我看到的那样 – Cato
实际上,使用“LEFT”连接它需要所有TableDelivery数据都可见。使用“RIGHT”加入后,它将正确显示,但如果TableDelivery中没有SerialNR的数据,则它将被忽略。 “RIGHT”加入是我需要的,但我需要也有那些在TableDelivery中没有团队信息的人。 – makelei