2017-02-06 9 views
0

SQLiteで次のSELECTクエリを使用しています。私はこれをSQLiteフレンドリーなUPDATEステートメントに変換する方法を考え出すのに苦労しています...私はSQLite UPDATEがJOINをサポートしていないことを知っています。ありがとうございました!何をしたいのクエリは、各従業員の最新/最大日付を見つけ、私が正しく理解していれば、個々の従業員SQLite:UPDATE JOINサブクエリの代替

SELECT 
    emp.*, maxdate 
FROM 
    employees emp JOIN (
    SELECT name as newname, MAX(enddate) AS maxdate 
    FROM 
     employees 
    GROUP BY name) m 
    ON emp.name = m.newname 
    ORDER BY maxdate DESC; 
+0

希望の 'UPDATE'の前後に' SELECT ... FROM ... JOIN'クエリの出力の例を投稿してください。つまり、どのフィールドを更新したいですか? – Dario

+0

この書式を設定する方法がわからないが、選択クエリの前に、データは次のようになります。 NAME DATE A 2016年12月31日 2016年1月31日 A、その後2015年12月31日 、それは次のようになります: NAME DATE MAXDATE A 12/31/2016 12/31/2016 A 1/31/2016 12/31/2016 A 12/31/2015 12/31/2016 –

答えて

1

うーんにその日付でカラムを追加して

は、

UPDATE employees 
     SET enddate = (
      SELECT MAX(enddate) 
        FROM employees e2 
        WHERE e2.name = employees.name 
      ); 
です
+0

はい、ありがとうございます。それは動作します! –

+0

私はうまくいきましたが、私は答えを改善しました。現在のバージョンはさらに優れています;) – Dario