簡體   English   中英

MySQL-查找同一列中字段之間的差異

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM