J'ai 2 tables:Proble avec deux tables joindre à la condition sous-requête
1) et_pics - ici des informations sur les employés:
- ob_no, int, clé, par exemple 2020
- c_name, varchar, par ex. Dribbler D.E.
e_post, varchar, par ex. Président
SELECT * FROM et_pics:
ob_no | nom_c | e_post
2020 | Dribbler D.E. | Président
2) et_vacations - ici des informations sur les vacances sont stockées:
- ob_no, int, par exemple 666 e_pic, int, connexion à pic.ob_no, par ex. 2020
- c_name, varchar, par ex. Vacances bla bla
- e_dateFrom, date, par ex. 2010-08-08 00: 00: 00.000
e_dateTo, date, 2010-08-09 00 par exemple: 00: 00.000
SELECT * FROM et_vacations retours vac
ob_no | e_pic | c_name | e_dateFrom | e_datePour
| 777 | 2020 | Vacances bla bla | 2010-08-08 00: 00: 00.000 | 2010-08-09 00: 00: 00.000 |777 | 2020 | Vacances bla bla | 2015-08-08 00: 00: 00.000 | 2015-08-09 00: 00: 00.000 |
Ce que je dois faire est de se connecter à et_vacations et_pics conditions:
- pourrait être le seul enregistrement de vacances par personne (me semble max (e_dateTo));
- L'enregistrement de vacances doit être> = getDate() ou null est affiché.
ne comprends pas comment écrire sous_requête droite - essayé de cette façon, mais pas de chance:
SELECT
pics.c_name,
pics.e_post,
vac.e_dateTo
FROM et_pics pics
INNER JOIN et_division div on pics.e_division = div.ob_no
INNER JOIN et_vacations vac on vac.e_pic = pics.ob_no
WHERE
(pics.e_fireDate IS NULL OR pics.e_fireDate > getDate())
AND vac.e_dateTo IN (
SELECT MAX(vac.e_pic) from et_vacations vac
GROUP BY vac.e_pic
)
ORDER BY pics.c_name;
Merci à l'avance pour toute aide pour résoudre cette question.
Je ne comprends pas bien .. pouvez-vous poster échantillon de résultats attendus ? – sagi
Voici un bon endroit pour commencer. http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ Ou vous pouvez poster des tableaux et des exemples de données à sqlfiddle.com –
Que fait " pas de chance "signifie? Quel est le problème avec les résultats obtenus? –