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

MS SQL Server Discussion :

Résultat d'une requête sur une année


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Par défaut Résultat d'une requête sur une année
    Bonsoir,

    Je dois afficher les entrées situées entre le 01/01/2010 et le 31/12/2010, mais je bloque dans la clause :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT
    C.libser AS Equipe
    ,CONVERT(VARCHAR, MIN(dsitud), 103) AS Debut
    ,CONVERT(VARCHAR, MAX(dsituf), 103) AS Fin
    FROM PERSVAR B
    INNER JOIN SER C 
     ON C.serid = B.serid
    WHERE B.matric = '213486'
    AND annee = MIN(dsitud) BETWEEN '01/01/2010' AND '31/12/2010'
    GROUP BY C.libser
    J'ai une erreur quand j'ajoute MIN dans la clause.
    Merci pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Et ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT
    C.libser AS Equipe
    ,CONVERT(VARCHAR, MIN(dsitud), 103) AS Debut
    ,CONVERT(VARCHAR, MAX(dsituf), 103) AS Fin
    FROM PERSVAR B
    INNER JOIN SER C 
     ON C.serid = B.serid
    WHERE B.matric = '213486'
    GROUP BY C.libser
    HAVING MIN(dsitud) BETWEEN '01/01/2010' AND '31/12/2010'

  3. #3
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Par défaut
    Avec HAVING je n'ai plus d'erreur mais aucun résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT
     CONVERT(VARCHAR, MIN(dsitud), 103) AS Debut
    ,CONVERT(VARCHAR, MAX(dsituf), 103) AS Fin
    ,C.libser AS Equipe
    FROM PERSVAR B
    INNER JOIN SER C
     ON C.serid = B.serid
    WHERE B.matric = '213486'
    GROUP BY C.libser
    HAVING CONVERT(VARCHAR, MIN(dsitud)) BETWEEN '2009-01-01' AND '2010-12-31'

  4. #4
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour,

    Peux t'on avoir la DDL de vos tables et un jeu de données ?

    ++

  5. #5
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Par défaut
    Peux t'on avoir la DDL de vos tables et un jeu de données ?
    Table PERSVAR :

    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
    19
    20
    21
    22
    USE [TEST]
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[PERSVAR](
    	[ROWID] [int] NOT NULL,
    	[MATRIC] [int] NULL,
    	[DSITUD] [datetime] NULL,
    	[DSITUF] [datetime] NULL,
    	[SERID] [varchar](6) COLLATE French_CI_AS NULL,
     CONSTRAINT [PK_VAR2] PRIMARY KEY CLUSTERED 
    (
    	[ROWID] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
     
    GO
    SET ANSI_PADDING OFF
    Table SER :

    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
    19
    20
    USE [TEST]
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[SER](
    	[ROWID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
    	[SERID] [varchar](6) COLLATE French_CI_AS NOT NULL,
    	[LIBSER] [varchar](30) COLLATE French_CI_AS NULL,
     CONSTRAINT [PK_SER] PRIMARY KEY CLUSTERED 
    (
    	[ROWID] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
     
    GO
    SET ANSI_PADDING OFF
    Le jeux de données :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    --Table PERSVAR
     
    INSERT INTO [TEST].[dbo].[PERSVAR]
               ([ROWID]
               ,[MATRIC]
               ,[DSITUD]
               ,[DSITUF]
               ,[SERID])
         VALUES
               ('374'
               ,'213486'
               ,'2009-12-23'
               ,'2010-01-03'
               ,'LITIGES')
     
    INSERT INTO [TEST].[dbo].[PERSVAR]
               ([ROWID]
               ,[MATRIC]
               ,[DSITUD]
               ,[DSITUF]
               ,[SERID])
         VALUES
               ('519'
               ,'213486'
               ,'2010-01-04'
               ,'2010-01-24'
               ,'LITIGES')
     
    INSERT INTO [TEST].[dbo].[PERSVAR]
               ([ROWID]
               ,[MATRIC]
               ,[DSITUD]
               ,[DSITUF]
               ,[SERID])
         VALUES
               ('590'
               ,'213486'
               ,'2010-01-25'
               ,'2010-04-11'
               ,'LITIGES')
     
    INSERT INTO [TEST].[dbo].[PERSVAR]
               ([ROWID]
               ,[MATRIC]
               ,[DSITUD]
               ,[DSITUF]
               ,[SERID])
         VALUES
               ('714'
               ,'213486'
               ,'2010-04-12'
               ,'2010-07-05'
               ,'GESTIONNAIRES')
     
    INSERT INTO [TEST].[dbo].[PERSVAR]
               ([ROWID]
               ,[MATRIC]
               ,[DSITUD]
               ,[DSITUF]
               ,[SERID])
         VALUES
               ('803'
               ,'213486'
               ,'2010-07-06'
               ,'2100-12-31'
               ,'GESTIONNAIRES')
     
    --Table SER
     
    INSERT INTO [TEST].[dbo].[SER]
               ([ROWID]
               ,[SERID]
               ,[LIBSER])
         VALUES
               ('5'
               ,'LITIGE'
               ,'LITIGES')
     
    INSERT INTO [TEST].[dbo].[SER]
               ([ROWID]
               ,[SERID]
               ,[LIBSER])
         VALUES
               ('13'
               ,'GEST'
               ,'GESTIONNAIRES')

  6. #6
    Invité
    Invité(e)
    Par défaut
    Ça va pas être évident de rentrer "GESTIONNAIRES" dans un champ de 6 caractères...

    Vous avez remarqué que les serid de vos deux tables n'ont aucunes valeurs communes ?

    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
    /*------------------------
    select distinct serid FROM PERSVAR ;
    select distinct serid FROM SER ;
    ------------------------*/
    serid
    ------------------------------------------------------------
    GESTIONNAIRES
    LITIGES
     
    (2 row(s) affected)
     
    serid
    ------------------------------------------------------------
    GEST
    LITIGE
     
    (2 row(s) affected)

Discussions similaires

  1. Remplacer une requête sur une class par une valeur constante ?
    Par Lillie CHARLOTTE dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 02/06/2015, 09h59
  2. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  3. [Toutes versions] Faire en VBA une requête sur une requête paramétrée
    Par guidav dans le forum VBA Access
    Réponses: 3
    Dernier message: 15/02/2012, 17h10
  4. Réponses: 1
    Dernier message: 30/08/2011, 09h53
  5. Tri d'une requête sur une valeur ou une autre
    Par mims1664 dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/08/2009, 17h40

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