IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Passage de paramètres dans une requête imbriquée


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Février 2005
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Passage de paramètres dans une requête imbriquée
    Bonjour,

    J'ai un petit soucis dans une grosse requête. Plutot que de passer la grosse requete balaise, je l'ai simplifiée totalement pour isoler mon problème :
    Donc voilà ce qu'il reste...
    J'ai une table : plages_minmax
    id_minmax, min, max
    0 | 0 | 1
    1 | 2 | 4
    2 | 5 | 8
    3 | 9 | 15
    ...

    Et ma requête au problème isolé :

    SELECT plages_minmax.min AS mini, plages_minmax.max AS maxi, Nombre AS Total
    FROM
    plages_minmax,
    (
    SELECT COUNT(*) AS Nombre FROM plages_minmax
    WHERE min=mini AND max=maxi
    )
    ;
    Le problème est que quand je fais ceci, dans ma deuxième requête, SQL n'utilise pas les valeurs mini et maxi de la première requête...
    Quand j'exécute dans acces (bof), ile me demande donc les valeurs de mini et maxi au lieu d'utiliser les valeurs recupérée dans la première requête...
    C'est à dire qu'il ne fait pas le lien entre les arguments en gras...
    Enervant...

    Comment faire ?

    Merci à qui pourra m'aider

    Pour info, voici la vraie requête complète qui a le même problème...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SELECT plages_minmax.min AS mini,plages_minmax.max AS maxi,Nombre AS Total FROM plages_minmax,
    	(
    	SELECT COUNT(*) AS Nombre FROM
    		(
    		SELECT DISTINCT ([PAR_OPERATION]) AS Opération, COUNT([PAR_OPERATION]) AS Nombre
    		FROM [IDENTITE PARCELLE]
    		GROUP BY [PAR_OPERATION]
    		HAVING
    			(
    			COUNT([PAR_OPERATION]) >=mini and
    			COUNT([PAR_OPERATION]) <=maxi
    			)
    		)
    	)
    ;
    [Modération, Orafrance : Pensez à utiliser les balises [CODE] et [QUOTE] qui améliorent nettement la lisibilité, merci]

  2. #2
    Membre habitué Avatar de nantais
    Inscrit en
    Juillet 2004
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 158
    Points : 192
    Points
    192
    Par défaut
    Salut,

    C'est normal. L'analyse d'une requête commançant (si on peut dire...) pas la fin il ne connait donc pas encore les renommages de tes champs.

    Pourquoi ne fais tu pas plutôt comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT plages_minmax.min AS mini, plages_minmax.max AS maxi, count(*) AS Total 
    FROM plages_minmax
    GROUP BY plages_minmax.min, plages_minmax.max ;

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Février 2005
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Rooooh !
    Mais c'est très parfait tout ça

    Par contre mon exprit faible n'arrive pas à appliquer ceci dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SELECT plages_minmax.min AS mini,plages_minmax.max AS maxi,Nombre AS Total FROM plages_minmax, 
    ( 
    SELECT COUNT(*) AS Nombre FROM 
    ( 
    SELECT DISTINCT ([PAR_OPERATION]) AS Opération, COUNT([PAR_OPERATION]) AS Nombre 
    FROM [IDENTITE PARCELLE] 
    GROUP BY [PAR_OPERATION] 
    HAVING 
    ( 
    COUNT([PAR_OPERATION]) >=mini and 
    COUNT([PAR_OPERATION]) <=maxi 
    ) 
    ) 
    ) 
    ;
    Es-tu un Dieu assez puissant pour réussir à m'adapter mon machin ?

    Tu serais trop trop sympa

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passage de paramètre dans un requête Mysql
    Par kcizth dans le forum Requêtes
    Réponses: 2
    Dernier message: 04/02/2006, 14h28
  2. Paramètres dans une requête
    Par christellel198 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/10/2005, 13h49
  3. Réponses: 7
    Dernier message: 18/05/2005, 15h09
  4. Réponses: 9
    Dernier message: 13/05/2005, 03h13
  5. Passage de variable dans une requête
    Par zestrellita dans le forum Langage SQL
    Réponses: 5
    Dernier message: 02/09/2004, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo