Ajouter un nouveau champ dans une requête SQL
Résolu
gabch
-
gabch -
gabch -
Salut,
J'ai les tables suivantes :
Adhérent (num_ad, nom, prénom,…),
Livre (code, titre, auteur,…),
Prêt (num_p, # num_ad, # code, date_prêt, date_retour_prévue, date_retour)
Je veux avoir une liste complètes des adhérents accompagnés des titres des livres qu'ils ont emprunté et un nouveau champ "état" qui doit préciser si le livre a été rendu ou non, mon problème est ce dernier champ que je dois ajouter à ma requête SQL pour m'indiquer l'état du livre (si date_retour = Null, état = non rendu sinon état = rendu)
Comment introduire ce champ dans ma requête SQL ?
Ma requête sans ce champ est :
Select Adhérent.*, Livre.titre
From Adhérent, Livre, Prêt
Where Adhérent.num_ad = Prêt.num_ad and Livre.code = Prêt.code
Merci d'avance
J'ai les tables suivantes :
Adhérent (num_ad, nom, prénom,…),
Livre (code, titre, auteur,…),
Prêt (num_p, # num_ad, # code, date_prêt, date_retour_prévue, date_retour)
Je veux avoir une liste complètes des adhérents accompagnés des titres des livres qu'ils ont emprunté et un nouveau champ "état" qui doit préciser si le livre a été rendu ou non, mon problème est ce dernier champ que je dois ajouter à ma requête SQL pour m'indiquer l'état du livre (si date_retour = Null, état = non rendu sinon état = rendu)
Comment introduire ce champ dans ma requête SQL ?
Ma requête sans ce champ est :
Select Adhérent.*, Livre.titre
From Adhérent, Livre, Prêt
Where Adhérent.num_ad = Prêt.num_ad and Livre.code = Prêt.code
Merci d'avance
A voir également:
- Ajouter un nouveau champ dans une requête SQL
- Comment créer un nouveau groupe sur whatsapp - Guide
- Créer un nouveau compte gmail - Guide
- Nouveau site coco chat - Accueil - Réseaux sociaux
- Créer un nouveau compte google - Guide
- Requête sql pix - Forum Python
4 réponses
Bonsoir,
à mon avis tu n'as pas besoin de modifier ta requette, mais au moment de l'affichage de ton tableau résultat, tu calcules par php
si date_retour=="NULL" echo "non rendu"
else echo "rendu"
@lain
à mon avis tu n'as pas besoin de modifier ta requette, mais au moment de l'affichage de ton tableau résultat, tu calcules par php
si date_retour=="NULL" echo "non rendu"
else echo "rendu"
@lain
bonjour,
je connais plus oracle où il y a la fonction nvl ou dans le select on peut rajouter nvl(pret.date_retour,'non rendu') tu aurais alors soit la date de retour, soit non rendu ( pour rajouter rendu, il faudrait rajouter un autre niveau de decode)
en cherchant pour mysql il semble y avoir la fonction identique coalesce, cf : http://www.nexen.net/index.php?option=com_nexen_v2&Itemid=233&&lang=FR&nexen_url_type=intern&nexen_path=docs%2Fmysql%2Fannotee%2Fcomparison-operators.php
donc dans ton select tu peux rajouter un champ coalesce(pret.date_retour,'non rendu')
cdt
je connais plus oracle où il y a la fonction nvl ou dans le select on peut rajouter nvl(pret.date_retour,'non rendu') tu aurais alors soit la date de retour, soit non rendu ( pour rajouter rendu, il faudrait rajouter un autre niveau de decode)
en cherchant pour mysql il semble y avoir la fonction identique coalesce, cf : http://www.nexen.net/index.php?option=com_nexen_v2&Itemid=233&&lang=FR&nexen_url_type=intern&nexen_path=docs%2Fmysql%2Fannotee%2Fcomparison-operators.php
donc dans ton select tu peux rajouter un champ coalesce(pret.date_retour,'non rendu')
cdt
Ce que j'ai compris est que la fonction coalesce permet de retourner le premier élément non- NULL d'une liste mais mon problème est que le champ état est ajouté lors de l'exécution de la requête pour afficher "rendu" ou "non rendu"
je voulais ajouter que cette requête me permet d'interroge une bdd Access à partir d'une application Java
Merci
je voulais ajouter que cette requête me permet d'interroge une bdd Access à partir d'une application Java
Merci
Salut,
j'ai enfin resolu mon problème et pour ceux qui ca peut leur aider ma requête est :
"SELECT Adhérent.*, Livre.titre, IIf(Prêt.retour is Null,'Non rendu','Rendu')
FROM Livre, Adhérent, Prêt
WHERE Adhérent.num_ad = Prêt.num_ad and Livre.code = Prêt.code "
j'ai utilisé la fonction IIf(expr, truepart, falsepart)
j'ai enfin resolu mon problème et pour ceux qui ca peut leur aider ma requête est :
"SELECT Adhérent.*, Livre.titre, IIf(Prêt.retour is Null,'Non rendu','Rendu')
FROM Livre, Adhérent, Prêt
WHERE Adhérent.num_ad = Prêt.num_ad and Livre.code = Prêt.code "
j'ai utilisé la fonction IIf(expr, truepart, falsepart)