You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
3.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

-- ? Q1). Lister les candidat(e)s (noms, prénoms) qui fêtent leur anniversaire ce mois-ci ?
-- ?(Assurez-vous que la requête fonctionne, peu importe la date à laquelle elle est exécutée.)
SELECT nom, prenom FROM Candidat WHERE date_trunc('month', dateNaiss) - date_trunc('year', dateNaiss) = date_trunc('month', CURRENT_DATE) - date_trunc('year', CURRENT_DATE);
--? Q2). Pour chaque élection, afficher les dates du premier et du deuxième tour afin dobtenir le format suivant :
--? election | dates
--? ----------------------+-----------------------------------
--? Présidentielles 2022 | 1er tour : 10/04, 2e tour : 24/04
--? Les élections devront être affichées par ordre chronologique inverse.
SELECT 'Présidentiels ' || annee, '1er tour : ' || to_char(t1.dateT, 'DD/MM') || ', 2e tour : ' || to_char(t1.dateT, 'DD/MM') AS dates
FROM Election, Tour t1, Tour t2
WHERE annee = t1.election AND t1.election = t2.election AND t1.tour = 1 AND t2.tour = 2
ORDER BY t1.dateT DESC;
--? Q3). Y a til déjà eu un tour délection qui sest produit un jour autre que le dimanche?
--? Votre requête doit afficher la date à laquelle cela sest produit le cas échéant, sinon elle devra ne retourner aucune ligne.
SELECT dateT
FROM Tour
WHERE to_char(dateT, 'FMDAY') != 'SUNDAY';
--? Q4). Lister les candidats (noms, prénoms) dont le parti contient le mot France ou Français(e).
SELECT c.nom, c.prenom
FROM Candidat c, SePresente s, Parti p
WHERE c.noCandidat = s.noCandidat AND s.parti = p.tag AND p.tag LIKE '%France%' OR p.tag LIKE '%Français%' OR p.tag LIKE '%Français%';
--? Q5). Pour chaque élection, quel département (code et nom) est celui ayant le plus petit nombre
--? dinscrits sur les listes électorales ?
SELECT d.code, d.nom
FROM Resultats r, Departement d, Tour t
WHERE r.dpt = d.code AND r.tour = t.dateT AND r.inscrits <= ALL(SELECT r1.inscrits
FROM Resultats r1
WHERE r1.tour = t.dateT);
--? Q6). Y a til un écart dans le nombre dinscrits sur les listes électorales entre le premier et le second tour dune élection ?
--? Afficher le résultat pour chaque élection.
SELECT 'tour 1 : ' || r1.inscrits, 'tour 2 : ' || r2.inscrits, t1.election
FROM Resultats r1, Tour t1, Resultats r2, tour t2
WHERE r1.tour = t1.dateT AND r2.tour = t2.dateT AND t1.election = t2.election;
--? Q7). Quel a été le plus haut score (en pourcentage de voix exprimées) réalisé lors dun premier tour ? De quel(le) candidat(e) sagit-il ?
SELECT r.votants/r.inscrits as pourcentage, c.nom, c.prenom
FROM Tour t, Resultats r, DetailVoix d, Candidat c
WHERE r.tour = t.dateT AND t.dateT = d.tour AND d.noCandidat = c.noCandidat AND t.tour = 1 AND r.votants >= ALL(SELECT r1.votants
FROM Resultats r1
WHERE r1.tour = t.dateT);
-- Q8). Rajouter une colonne position à la table Parti qui peut prendre les valeurs Ga, Dr, EG, ED et Ce (pour Gauche, Droite, Extrême Gauche, Extrême Droite et Centre).
-- Rappel :
-- —
-- — —
-- ALTER TABLE <nom_table> ADD <nom_colonne> <type> : permet dajouter une colonne à une table
-- ALTER TABLE <nom_table> ADD CONSTRAINT <contrainte> : permet dajouter une contrainte ALTER TABLE <nom_table> ADD <nom_colonne> <type> <contrainte>:permetdajouterune colonne à une table avec une contrainte.