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 :

Requêtes SQL avec conditions


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 45
    Points : 27
    Points
    27
    Par défaut Requêtes SQL avec conditions
    Bonjour,

    Voila je voudrais faire une requête avec des conditions dans le where mais j'y arrive vraiment pas.
    Voila ce que je voudrais faire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT    champs1,champs2...					
           FROM    matable 
    		WHERE   
    (si mon paramatre1=condtion1 alors ou si parametre2=condition2 alors...)
    Ou faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If(monparametre1=condition1 ou monparametre2=condition2) alors
    Ma requete.
    J'avoue que je ne trouve pas, j'ai beau fouiller sur le net mais rien.

    Merci de votre aide.

  2. #2
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    Pour les conditions tu peux essayer du cote du branchement case

    http://sqlpro.developpez.com/cours/sqlaz/select/#L7.1

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 45
    Points : 27
    Points
    27
    Par défaut
    merci de ta réponse:
    est-ce que je peux faire ceci dans ma requête?:

    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
    16
    17
    18
    DECLARE @NB_CPT INT
    SET @NB_CPT = 0
     
    IF (@parametre=0) 
    	BEGIN
    		SELECT    @NB_CPT = count(*)
    		FROM       matable 
    		WHERE    condition 	
    END
     
    ELSE BEGIN
    		SELECT    @NB_CPT = count(*)
    		FROM         matable
    		WHERE     condition
    END
     
    RETURN @NB_CPT
    END

  4. #4
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Quel est votre SGBD ?

    De plus tu poses des questions mais tu n'as pas l'air de lire les réponses

    tu peux essayer du cote du branchement case
    Bon courage

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 45
    Points : 27
    Points
    27
    Par défaut
    Bonjour,
    Merci de ta réponse. Si effectivement j'ai bien regardé la réponse qui m'a permis d'ailleurs de résoudre un probléme.
    Seulement j'ai trois requetes que je voudrais réunir en une seule c'est-dire ceci:

    requetes 1:

    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
    16
    BEGIN DECLARE @NB_CPT INT
    SET              @NB_CPT = 0 IF (@groupe = 0) BEGIN
                              SELECT     @NB_CPT = count(*)
                               FROM         FilteredIncident AS FilteredIncident LEFT OUTER JOIN
                                                      FilteredContact ON FilteredIncident.contactid = FilteredContact.contactid LEFT OUTER JOIN
                                                      FilteredIncidentResolution ON FilteredIncident.incidentid = FilteredIncidentResolution.incidentid
                               WHERE     (FilteredIncident.new_groupe = 1 OR
                                                      FilteredIncident.new_groupe = 2 OR
                                                      FilteredIncident.new_groupe = 3) AND (YEAR(FilteredIncident.createdon) = @annee) AND (MONTH(FilteredIncident.createdon) = @mois) 
                                                      END ELSE BEGIN
                                                          SELECT     @NB_CPT = count(*)
                                                           FROM         FilteredIncident AS FilteredIncident LEFT OUTER JOIN
                                                                                  FilteredContact ON FilteredIncident.contactid = FilteredContact.contactid LEFT OUTER JOIN
                                                                                  FilteredIncidentResolution ON FilteredIncident.incidentid = FilteredIncidentResolution.incidentid
                                                           WHERE     (FilteredIncident.new_groupe = @groupe) AND (YEAR(FilteredIncident.createdon) = @annee) AND 
                                                                                  (MONTH(FilteredIncident.createdon) = @mois) END
    Requête 2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    BEGIN DECLARE @NB_REQUETES INTEGER
    SET              @NB_REQUETES = 0  IF (@groupe = 0) BEGIN
                              /* new_groupe 1,2,3 : ADV, BUT, TSU*/ SELECT @NB_REQUETES = count(*)
                               FROM         CLS_MSCRM.dbo.FilteredIncident
                               WHERE     (statecode = 0) AND (statuscode IN (1, 2)) AND (new_groupe IN (1, 2, 3)) AND (YEAR(createdon) = @annee) AND (MONTH(createdon) 
                                                      = @mois) END ELSE BEGIN
                                                           SELECT @NB_REQUETES = count(*)
                                                           FROM         CLS_MSCRM.dbo.FilteredIncident
                                                           WHERE     (statecode = 0) AND (statuscode IN (1, 2)) AND (new_groupe = @groupe) AND (YEAR(createdon) = @annee) AND 
                                                                                  (MONTH(createdon) = @mois) END
                                                                                      SELECT     @NB_REQUETES END
    requetes 3

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT     Janvier, Fevrier, Mars, Avril, Mai, Juin, Juillet, Aout, Septembre, Octobre, Novembre, Decembre
    FROM         (SELECT     '1' AS numero, dataset1(1, @annee, @groupe) AS Janvier, dataset1(2, @annee, @groupe) AS Fevrier, 
                                                  dataset1(3, @annee, @groupe) AS Mars, dataset1(4, @annee, @groupe) AS Avril, 
                                                  dataset1(5, @annee, @groupe) AS Mai,dataset1(6, @annee, @groupe) AS Juin, dataset1(7, 
                                                  @annee, @groupe) AS Juillet, dataset1(8, @annee, @groupe) AS Aout, dataset1(9, @annee, @groupe) 
                                                  AS Septembre, dataset1(10, @annee, @groupe) AS Octobre, dataset1(11, @annee, @groupe) AS Novembre, 
                                                  dataset1(12, @annee, @groupe) AS Decembre
                           UNION
                           SELECT     '2' AS numero, dataset2(1, @annee, @groupe) AS Janvier, dataset2(2, @annee, @groupe) AS Fevrier, 
                                                 dataset2(3, @annee, @groupe) AS Mars, dataset2(4, @annee, @groupe) AS Avril, dbo.fctRequetesActives(5, 
                                                 @annee, @groupe) AS Mai, dataset2(6, @annee, @groupe) AS Juin, dataset2(7, @annee, @groupe) AS Juillet, 
                                                 dataset2(8, @annee, @groupe) AS Aout, dataset2(9, @annee, @groupe) AS Septembre, 
                                                 dataset2(10, @annee, @groupe) AS Octobre, dataset2(11, @annee, @groupe) AS Novembre, 
                                                 dataset2(12, @annee, @groupe) AS Decembre) AS systeme
    Merci de me mettre sur une piste.

Discussions similaires

  1. Requête SQL avec une condition portant sur date
    Par kekule10 dans le forum PyQt
    Réponses: 3
    Dernier message: 03/08/2014, 01h56
  2. [11gR2] Requête SQL avec conditions
    Par JordanBit dans le forum SQL
    Réponses: 1
    Dernier message: 15/03/2013, 16h20
  3. fusionner requête SQL avec conditions différentes
    Par breizhlama dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/05/2011, 14h36
  4. Requête SQL avec condition
    Par charlix dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/03/2008, 11h38
  5. [MySQL] concaténer une requête sql avec condition
    Par maliak dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 10/02/2006, 12h01

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