Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Faire une requete SQL avec un champs complet qui n'est influencé par la requete. [ Archives / Bases de données ] (vaginator120)

lundi 24 octobre 2005 à 10:43:22 | Faire une requete SQL avec un champs complet qui n'est influencé par la requete.

vaginator120

Bonjour, j'ai un ptit probleme en SQL avec un dataset.
Je voudrais avoir le resultat de ma requete sous la forme suivante:

Libelle   donnees1   donnees2

où le champ libelle serait complet (sans sélection sur le resultat) et les champs donnees1 et donnees2 serait bien affectés par les conditions de la requete.
Donc au final je voudrais des champs vides où il n'y a pas de resultat pour donnees1 et donnees2.
La difficulté étant que si il n'y a pas de resultat c'est qu'il n'y a pas de ligne correspondante.Ce n'est donc pas un champs null que je dois afficher.

exemple:

libelle         donnees1         donnees2
---------  -------------   --------------
nom            Dupont             
prenom                             pierre
age             18                  25
adresse       15 av delphi
ville             loin                très loin
cp                                    53000

Peut être il y a t'il un moyen avec un ClientDataSet mais je ne sais pas trop m'en servir .

Merci 


lundi 24 octobre 2005 à 11:19:41 | Re : Faire une requete SQL avec un champs complet qui n'est influencé par la requete.

vaughan

Membre Club
Je suis dans le flou :

Les valeurs Nom, prenom , ... sont dans une table et les données 1et 2 sont dans une autre table ?

Peux-tu me transmettre ton descriptif de table (MCD), ainsi que ta requête SQL et le type de ta base de donnée (Oracle, SqlServer, ...)

Afin d'y voir plus claire

vaughan

lundi 24 octobre 2005 à 11:32:01 | Re : Faire une requete SQL avec un champs complet qui n'est influencé par la requete.

vaginator120

ok, c'etait un exemple donc je te donne les vraies tables:
donnees1(d1) et donnees2(d2) sortent de la même table.

donnees:
-------------
Page
Nom_Zone
Type_Zone
Donnees

libelle
-------------
Page
Nom_zone
Libelle

Pour l'instant ma requete c'est  :

SELECT l2.libelle l2, d1.donnees d1,d2.donnees d2
FROM libelle l1,donnees d1, donnees d2, libelle l2
WHERE l1.Nom_Zone<>''
AND l2.Nom_Zone<>''
AND l2.Libelle=l1.Libelle
AND ((d2.Nom_Zone like concat(l1.Nom_Zone,'%') AND d2.nom_zone like '%02')
AND (d1.Nom_Zone like concat(l2.Nom_Zone,'%') AND d1.nom_zone like '%01'))

c'est un peu bricolage (ça a commencé à m'énerver au bout de 3 jours sans résultat.. ) mais ça m'affiche ce que je veux mis à part le fait que ça enleve les libelles qui n'ont pas de correspondance dans la table donnees.
Je travaille avec une base MySQL.


lundi 24 octobre 2005 à 13:15:42 | Re : Faire une requete SQL avec un champs complet qui n'est influencé par la requete.

vaughan

Membre Club
Réponse acceptée !
En faite c'est un problème de requête, il faut faire des jointures externes afin de ramener les lignes même si il n'éxiste pas d'enregistrement.

La jointure entre ta table libellé et donnée c'est page/Nom_zone

SELECT
 l.libelle,
 d1.donnees,
 d2.donnees
FROM
 libelle l,
 donnees d1,
 donnees d2
WHERE
 l.Nom_Zone<>''
 AND d2.nom_zone like '%02'
 AND d1.nom_zone like '%01'
 AND RIGHT JOIN l.Nom_Zone = d1.Nom_Zone
 AND RIGHT JOIN l.Nom_Zone = d2.Nom_Zone
 AND RIGHT JOIN l.Page= d1.Page
 AND RIGHT JOIN l.Page = d2.Page

vaughan

lundi 24 octobre 2005 à 14:28:29 | Re : Faire une requete SQL avec un champs complet qui n'est influencé par la requete.

vaginator120

Mysql n'aime pas du tout cette forme de RIGHT JOIN.
J'ai utilisé :
SELECT l.libelle,d1.donnees, d2.donnees
FROM
donnees d1 RIGHT JOIN libelle l  ON (l.Nom_Zone = d1.Nom_Zone),
donnees d2 RIGHT JOIN libelle l1 ON (l1.Nom_Zone = d2.Nom_Zone)

Mais bien sur ça n'affiche que 'libelle', les deux autres champs étant remplis de NULL.
Maintenant que je sais que ma réponse est avec les jointures je vais chercher.
Merci ;)


mercredi 26 octobre 2005 à 16:49:41 | Re : Faire une requete SQL avec un champs complet qui n'est influencé par la requete.

MimiGMT

Existe t'il en MySql la fonction isnull(d1.données, '') ??


jeudi 27 octobre 2005 à 09:43:36 | Re : Faire une requete SQL avec un champs complet qui n'est influencé par la requete.

vaughan

Membre Club
IFNULL(expr1,expr2)
Si l'argument expr1 n'est pas NULL , la fonction IFNULL() retournera l'argument expr1 , sinon elle retournera l'argument expr2 . La fonction IFNULL() retourne une valeur numérique ou une chaîne de caractères, suivant le contexte d'utilisation :

mysql> SELECT IFNULL(1,0);
        -> 1
mysql> SELECT IFNULL(NULL,10);
        -> 10
mysql> SELECT IFNULL(1/0,10);
        -> 10
mysql> SELECT IFNULL(1/0,'oui');
        -> 'oui'
Voir :
[ Lien ]

vaughan



Cette discussion est classé dans : champs, requete, resultat, donnees2, donnees1


Répondre à ce message

Sujets en rapport avec ce message

Requete spéciale sous MySQL [API MySQL] [ par jbrek ] Bonjour,j'ai un petit souci. Déjà mon problème n'est pas facile a expliquer, alors si je suis pas claire, dites le moi !ButAjouter un enregistrement d Requete spéciale sous MySQL [API MySQL] [ par jbrek ] Bonjour,j'ai un petit souci. Déjà mon problème n'est pas facile a expliquer, alors si je suis pas claire, dites le moi !ButAjouter un enregistrement d Problème affichage requete SQL dans DBGrid [ par San35 ] Bonjour, J'ai une requete SQL basée sur plusieurs champs de plusieurs tables (avec jointures). Je travaille sur une base Access et avec l'objet ADOQue Problème affichage de requete sql dans dbgrid [ par San35 ] Bonjour, J'ai une requete SQL basée sur plusieurs champs de plusieurs tables (avec jointures). Je travaille sur une base Access et avec l'objet ADOQue requete [ par manivictor ] BonjourJe voudrais exécuter une requete pour afficher les minimums  4 champs numériques dans un champ du  DBGrid.Autrement je voudrais avoir un 5è cha findfirst findnext et lecture écriture de fichiers.. [ par sebcbien_bzh ] bonjour,pour l'instant j'ai une simple application avec un bouton (delphi 7) .L'application recherche des .csv dans le dossier où se trouve le .exe (j Afficher le resultat d'une requete [ par armstrong0000 ] Bonjour à tous,J'ai enfin reussi à me connecter à ma base de données (mysql) via la connexion ADO (je suis sous delphi7), le problème c'est que lorsqu modifier une requete SQL [ par islem2007 ] svp j'ai fais une requete ou le resultat est affiché sur un DBGRIDje voudrais apartir de ce DBgrid appliquer des modifications sur les enregistrements requete sql avec or sur le même champs [ par choup ] 'lutj'ai un petit probleme et je n'arrive pas à comprendre pourquoi : celà ne me semble pas logique.voilà : j'ai une requete qui donne "select *from o ajout de champs a une requete [ par tgomas ] Bonjour,je voudrais pouvoir modifier une requete dynamiquement. J'arrive a modifier la requete sql, mais je n'arrive pas a ajouter des champs à mon ob


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,23 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.