У меня 2 табличных отношения.
Это таблица сотрудников:
"id" "nik" "namalengkap" "tgl_join" "resign_date"
"1" "1802012637" "Agung" "2013-02-18" NULL
"2" "1801012633" "Karyawan" "2017-07-12" "2018-08-06"
"3" "1804232684" "Test Data" "2018-08-21" NULL
Это таблица данных о сотрудниках:
"id" "nik" "tgl_awal" "tgl_akhir" "level_id" "jabatan_id" "departemen_id" "divisi_id" "direktorat_id" "publish"
"1" "1802012637" "2017-05-12" "2017-09-12" "1" "[""3"",""4""]" "1" "2" "1" "1"
"2" "1802012637" "2018-06-12" "2018-07-12" "2" "[4,2]" "1" "9" "3" "1"
"3" "1801012633" "2018-07-26" \N "2" "[3,2]" "1" "11" "3" "1"
"4" "1801012633" "2018-09-10" "2018-07-21" "6" "[4]" "1" "3" "1" "0"
"5" "1804232684" "2018-07-21" "2018-08-21" "10" "[4]" "1" "2" "1" "1"
Я хочу показать данные d, nik, nama, lngkap, jabatan, level, departemen, divisi, активных в июле 2018 года
Используя это условие:
Состояние в таблице сотрудников:
- join_date меньше или равен 7-му месяцу 2018 года
И
- resign_date равно NULL или resign_date больше 7-го месяца 2018 года
Условие в таблице значений employee_history:
- публикация равна 1
- tgl_awal меньше 7-го месяца 2018 года
- если между ними есть повторяющиеся данные в результатах, то должны отображаться самые последние дублированные данные.
Как мне получить запрос?
Кто-нибудь может мне помочь? Спасибо
Я попробую этот запрос
SELECT a.*, b.nik, b.namalengkap,b.tgl_join, b.resign_date
FROM employee_historypositions a
LEFT OUTER
JOIN
employees b ON a.nik = b.nik
WHERE EXTRACT(YEAR_MONTH
FROM b.tgl_join) <= CONCAT("2018","07") AND b.resign_date IS NULL OR EXTRACT(YEAR_MONTH
FROM b.resign_date) > CONCAT("2018","07")
вы можете проверить здесь
http://sqlfiddle.com/#!9/700c31/1
но данные показывают все в employee_historypositions.
я просто не хочу показывать данные с таким условием.
- публикация равна 1
- tgl_awal меньше 7 месяцев 2018
- если между данными, которые появляются, есть 2 дубликата данных, то должны отображаться самые последние данные.