我在sqlserver中运行查询,我需要按位置的最新ID,位置在不同的表中,但我可以加入id。问题是值始终相同而不是每个位置。这是我的疑问:
SELECT DISTINCT
(select max(id) from t
where p.partname = 'ibiza')locid,
p.partitionkey,
t.partitionkey,
p.partdesc,
p.partname
FROM
t1 t1,
t t
WHERE
t.partitionkey = t1.partitionkey
GROUP BY
t.id,
p.partitionkey,
p.partname,
p.partdesc,
t.partitionkey;
答案 0 :(得分:2)
除了你的身份问题之外还有一些问题:
然而,实际问题是,您总是选择最后一个ID作为列(对于每一行选择相同的值),这就是它始终相同的原因 - 没有引用实际的行。
这会更好(至少我猜 - 没有表结构):
SELECT max(t.id) as locid, p.partitionkey, t.partitionkey, p.partdesc, p.partname
FROM t join p
on t.partitionkey = p.partitionkey
where p.partname = 'ibiza'
GROUP BY p.partitionkey, p.partname, p.partdesc, t.partitionkey
修改强>
现在我想我明白了,没有t1!它应该是p?
再次,请使用表名!