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

Développement SQL Server Discussion :

Probleme "having" ou "min()" procedure stockée


Sujet :

Développement SQL Server

  1. #1
    Nouveau membre du Club
    Développeur Web
    Inscrit en
    Janvier 2011
    Messages
    49
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2011
    Messages : 49
    Points : 39
    Points
    39
    Par défaut Probleme "having" ou "min()" procedure stockée
    Bonjour, je souhaite récupérer le nombre d'utilisateur par pays mais qui ont une MIN date comprise entre deux attributs de la procédure stockée @start et @stop et appartenir a un client précis.

    La procédure doit se faire sur 3 tables:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Select COUNT(U.pays) as [Count],
    U.pays
    from Tab1 as PQ
    inner join Tab2 as U on PQ.mail=U.mail
    inner join Tab3 AS PQ2 on PQ.ID=PQ2.ID and PQ2.client=@Client
    group by U.pays
    order by [Count] desc;
    tab1:
    tab2:
    tab3:
    La requête pour le moment retourne le nombre d'utilisateur par pays et pour le bon client mais sur toute la table.
    Il me faut en plus comme condition que la Min(Date) de tab1 soit comprise entre deux paramêtres: @start et @stop.

    Si quelqu'un a une idée...

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Est-ce que ceci donne ce que vous voulez ?

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    WITH U(mail) AS (
    	SELECT mail
    	FROM tab1
    	INNER JOIN tab3
    		ON tab1.id = tab3.id
    	WHERE client = @client
    	GROUP BY mail
    	HAVING MIN(dte) BETWEEN  @start AND @stop
    )
    SELECT 
    	pays,
    	COUNT(U.mail) AS NbUtils
    FROM tab2
    LEFT OUTER JOIN U
    	ON tab2.mail = U.mail
    GROUP BY pays

Discussions similaires

  1. [AC-2013] Problemes avec insert into et les simple quote
    Par Alann dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 18/07/2014, 17h41
  2. Réponses: 2
    Dernier message: 30/08/2004, 14h48

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