我有一张包含名字,中间名,姓氏,出生年份,市政府和收入详情的表格。数据集包含几年。问题是数据不包括每个人的唯一id。
因此,我必须根据上述数据对同一个人进行比较,找出每年相同的人。不完全准确,但没有其他办法。
我试图写一个查询,比较一年和另一年的收入,看看收入如何发展(下降,上升)。
我目前的尝试:
SELECT e.firstname, e.lastname, e.birth, e.middlename,
e.income-n.income as incomediff
from incomedata e
LEFT JOIN
(select n.firstname, n.lastname, n.birth, n.middlename) as
ON e.firstname = n.firstname, e.lastname = n.lastname, e.birth = n.birth, e.middlename = n.middlename
where e.municip=1234 and e.year IN (2011,2010);
这不起作用(很明显),我想如果没有唯一的id,我就不能运行JOIN。你知道怎么解决这个问题吗?
最佳答案
也许你在找这个:
SELECT e.firstname, e.lastname, e.birth, e.middlename,
e.income - n.income as incomediff
FROM incomedata e
LEFT JOIN incomedata n
ON e.firstname = n.firstname
AND e.lastname = n.lastname
AND e.middlename = n.middlename
AND e.birth = n.birth
WHERE e.municip = 1234
AND e.year = 2011
AND n.year = 2010
在多个字段上进行连接没有错,您只需将条件
AND
放在一起,而不是像在文章中那样用逗号分隔。