[Résolu][SQL] PB de requete (2en 1 ? comme le ...) trop dur pour moi !

PB de requete (2en 1 ? comme le ...) trop dur pour moi ! [Résolu][SQL] - VB/VBA/VBS - Programmation

Marsh Posté le 25-10-2005 à 11:42:50    

Bonjour :hello:  
 
bon....... :sarcastic:  
 
Je me lance. J'ai besoin d'une requete pour aboutir sur un etat (Sous Access et BDD sous SQL). J'ai donc commencé mais pour éviter de me bloquer j'ai fait des petites requetes dans le but de les combinées par la suite.... C'est la ou ça coince  :(  
 
     Voila 2 requetes qui fonctionnent (si vous avez cependant des remarques je suis preneur) et auquelles je voudrais rajouter un champ (SOLDEE avec de dans oui ou non) que je n'ai pas directement dans mes tables (j'ai les infos pour trouver la valeur)... C'est faisable ?
 
requete 1 :  SELECT [Raison sociale], [Code Fournisseur], NC.[CF], TGNC.[CF], [Redacteur de la fiche], [N°], [Secteur], [Type de NC], IIF([Securite]=0, "Non", "Oui" ) AS Securite2, [Points], [K], [N_K], [Note], [Resultat]
FROM RS_CF, NC, TGNC
WHERE NC.[CF]=[Code Fournisseur] and TGNC.[CF] = [Code Fournisseur] and TGNC.[CF]=NC.[CF];
 
et la requete2 qui donne les [N°] dans lequel le nouveau champ à rajouter doit etre à non (donc tous les autres a oui..... :D ):
 
SELECT DISTINCT AC.N° AS NON_SOLDER
FROM AC
WHERE (((AC.[Date réelle]) Is Null))
ORDER BY AC.N°;
 
Voila ces 2 requetes fonctionne pour ce que je veux faire mais lorsqu'il sagit de les combiner je suis perdu  :bounce: si vous pouvez maider plz !


Message édité par sLiZeR le 26-10-2005 à 14:14:10
Reply

Marsh Posté le 25-10-2005 à 11:42:50   

Reply

Marsh Posté le 25-10-2005 à 13:05:15    

Peut-être avec une jointure sur "N°", par exemple :

SELECT [Raison sociale], [Code Fournisseur], NC.[CF], TGNC.[CF], [Redacteur de la fiche], AC.[N°], [Secteur], [Type de NC], IIF([Securite]=0, "Non", "Oui" ) AS Securite2, [Points], [K], [N_K], [Note], [Resultat]  
FROM RS_CF, NC, TGNC, AC  
WHERE NC.[CF]=[Code Fournisseur] and TGNC.[CF] = [Code Fournisseur] and TGNC.[CF]=NC.[CF]
and AC.[N°] = autretable.[N°]
and AC.[Date réelle] Is Null;

Reply

Marsh Posté le 25-10-2005 à 13:42:37    

n'y a t il pas moyen de faire apparaitre un champ dans une requete sql auquel on attribue la valeur de ma sous requete ?
 
Vu que c'est pour faire un etat il me faut faire apparaitre les "Oui" et "Non"....

Reply

Marsh Posté le 25-10-2005 à 23:40:02    

Excuses-moi, je n'avais pas bien compris la question.
D'ailleurs, je ne suis pas certain de l'avoir totalement comprise maintenant, ce qui ne va pas m'empêcher de proposer de rajouter IIF(AC.[Date réelle]) Is Null, "Non", "Oui" ) AS "SOLDEE", ce qui donnerait :

SELECT [Raison sociale], [Code Fournisseur], NC.[CF], TGNC.[CF], [Redacteur de la fiche], AC.[N°], [Secteur], [Type de NC], IIF([Securite]=0, "Non", "Oui" ) AS Securite2, [Points], [K], [N_K], [Note], [Resultat],
IIF(AC.[Date réelle] Is Null, "Non", "Oui" ) AS "SOLDEE"  
FROM RS_CF, NC, TGNC, AC  
WHERE NC.[CF]=[Code Fournisseur]
  and TGNC.[CF] = [Code Fournisseur]
  and TGNC.[CF]=NC.[CF]  
  and AC.[N°] = autretable.[N°];


Message édité par olivthill le 25-10-2005 à 23:42:07
Reply

Marsh Posté le 26-10-2005 à 08:49:57    

Ok C'est cool j'ai du oublier de préciser quelque chose pour que tu puisse voir le truc. :whistle:  
Donc ça j'y ai pensé et c'est le résultat que je souhaite sauf que j'ai plusieurs AC.[Date réelle] pour 1 NC.[N°] donc il faudait que le IIF regarde toutes les AC.[Date réelle] pour chaque NC.[N°] (en principe il y en a pas beaucoup mais nombre inconnu quand meme) et que si il y a une seule AC.[Date réelle] qui est NULL,  bah le champ SOLDEE sera à "Non".
 
==> CF le premier post ou la 2eme requete recherchait dans toute la BDD et sortait la liste des NC.[N°] dont le champ SOLDEE devrait etre à "Non", enfait je n'arrive pas à les regroupées ces 2 requetes...
 
Autement dit pour qu'une fiche NC classée par N° soit SOLDEE il faut que toutes ses AC est une date réelle.
 
Voila merci encore pour ton aide


Message édité par sLiZeR le 26-10-2005 à 08:54:55
Reply

Marsh Posté le 26-10-2005 à 10:33:01    

Je commence à comprendre. Ma nouvelle suggestion est :

SELECT [Raison sociale],
       [Code Fournisseur],
       NC.[CF],
       TGNC.[CF],
       [Redacteur de la fiche],
       NC.[N°],
       [Secteur],
       [Type de NC],
       IIF([Securite]=0, "Non", "Oui" ) AS Securite2,
       [Points],
       [K],
       [N_K],
       [Note],
       [Resultat],  
       IIF((SELECT count(*)
              FROM AC
             WHERE AC.[Date réelle] Is Null
               AND AC.[N°] = NC.[N°])=0, "Oui", "Non" ) AS "SOLDEE"    
FROM RS_CF, NC, TGNC
WHERE NC.[CF]=[Code Fournisseur]  
  and TGNC.[CF] = [Code Fournisseur]  
  and TGNC.[CF]=NC.[CF];

Reply

Marsh Posté le 26-10-2005 à 14:09:21    

héhé....
 
:D trop cool ça marche nickel. Hereusement que tu es la ^^ (me souviens bien que tu m'as déjà dépanne sur le forum   :sol:  )
 
Merci bien et désolé d'avoir mal exposé le problème maintenant je sais executer une requete dans une autre, je vais pouvoir m'entrainer sur un autre champ efficace :p
 
Encore merci et un grand bravo  :jap: !


Message édité par sLiZeR le 26-10-2005 à 14:15:27
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed