[英]MySQL - find difference between fields in same column
我有一個表格,其中包含名字,中間名,姓氏,出生年份,城市和收入詳細信息。 數據集包含數年。 問題在於數據不包含每人唯一的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
有沒有錯,做JOIN的多個字段,你只需要AND
條件在一起,而不是在您的文章喜歡用逗號分隔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.