Posez votre question Signaler

Ajouter un nouveau champ dans une requête SQL [Résolu]

gabch - Dernière réponse le 11 janv. 2008 à 17:11
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
Lire la suite 

Ajouter un nouveau champ dans une requête SQL »

4 réponses
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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/...

donc dans ton select tu peux rajouter un champ coalesce(pret.date_retour,'non rendu')

cdt
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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)
Ajouter un commentaire
Ce document intitulé « Ajouter un nouveau champ dans une requête SQL » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?