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 :

table virtuelle année N et N-1


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 148
    Points : 70
    Points
    70
    Par défaut table virtuelle année N et N-1
    Bonjour,
    Voila j'ai une requête qui me permet de recuperer des données pour une periode. Maintenant j'aimerai pouvoir afficher la periode N et N-1 comment puis je faire :
    voici la 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
    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
    --declare @matable TABLE(
    --EQUIPE varchar(20),
    --UNITBASE decimal(38,20),
    --JOURS decimal(38,20))
    --
    --insert into @matable (
    --EQUIPE,
    --UNITBASE
    --)
    --select
    --Equipe,
    --sum(case [Type Article] 
    --	when '1' then cast([Forecast Quantity (Base)] as float)
    --	when '2' then cast([Forecast Quantity (Base)] as float)
    --	when '4' then cast([Forecast Quantity (Base)] as float)
    --	when '5' then cast([Forecast Quantity (Base)] as float)	
    --	when '6' then cast([Forecast Quantity (Base)] as float)
    --	else 0 end )as UnitBase
    --from dbo.[SOCIETE$Production Chantier]
    --where  [Forecast Date] between '01/01/2010' and '01/08/2010'
    --group by Equipe
    --order by Equipe
    --
    --insert into @matable(
    --EQUIPE,
    --jours)
    --select
    --Equipe,
    --max(cast([Forecast Quantity (Base)]as float)) as Jours
    --from dbo.[SOCIETE$Production Chantier]
    --where  [Forecast Date] between '01/01/2010' and '01/08/2010'
    --and No_ = 'PR'
    --and Ressource not like 'interimch%' 
    --and Ressource not like 'panne%'
    --and [Document No_] not like 'AF.DEPOT.%'
    --group by Equipe,[Document No_],[Forecast Date] 
    --order by Equipe
    --
    --select 
    --EQUIPE,
    --max(cast(UNITBASE as float)) as UNITBASE,
    --sum(cast(JOURS as float)) as JOURS
    --from @matable
    --group by Equipe

  2. #2
    FMJ
    FMJ est déconnecté
    Membre averti
    Profil pro
    tutu
    Inscrit en
    Octobre 2003
    Messages
    416
    Détails du profil
    Informations personnelles :
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : tutu

    Informations forums :
    Inscription : Octobre 2003
    Messages : 416
    Points : 356
    Points
    356
    Par défaut
    tout dépend de la façon dont tu veux présenter ton résultat.

    Soit tu veux une colonne par période et alors tu enrichis tes CASE END en filtrant sur la période voulue, pour chacune des colonnes résultat.

    Soit tu veux une seule colonne avec le résultat (toutes périodes confondues) et donc tu rajoutes une colonne portant le nom de la période et tu fais un regroupement dessus.

    La demande est basique mais peut-être n'ai-je pas bien compris la question

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 148
    Points : 70
    Points
    70
    Par défaut
    bonjour FMJ,
    je voudrais une colonne par periode
    si possible

  4. #4
    FMJ
    FMJ est déconnecté
    Membre averti
    Profil pro
    tutu
    Inscrit en
    Octobre 2003
    Messages
    416
    Détails du profil
    Informations personnelles :
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : tutu

    Informations forums :
    Inscription : Octobre 2003
    Messages : 416
    Points : 356
    Points
    356
    Par défaut
    Est-ce que les périodes sont connues à l'avance et peuvent donc être saisies dans le code ? Ou non ?

    Dans l'affirmative, il suffit de créer une colonne par période et de mettre un CASE du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SUM(CASE  WHEN [Forecast Date] >= '20100101' and  [Forecast Date] >= '20100801' THEN
        (CASE [Type Article] 
             WHEN '1' THEN CAST([Forecast Quantity (Base)] AS FLOAT)
             WHEN '2' THEN CAST([Forecast Quantity (Base)] AS FLOAT)
             WHEN '4' THEN CAST([Forecast Quantity (Base)] AS FLOAT)
             WHEN '5' THEN CAST([Forecast Quantity (Base)] AS FLOAT)
             WHEN '6' THEN CAST([Forecast Quantity (Base)] AS FLOAT)
             ELSE 0 
       END)
    ELSE 0 
    END)
    Dans la négative, il y a cette solution :
    http://fadace.developpez.com/mssql/pivot/
    Une des solutions proposées est utilisée ici :
    http://www.developpez.net/forums/d96...e-croisee-sql/

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 148
    Points : 70
    Points
    70
    Par défaut
    Merci FMJ,
    Oui les periodes sont connues a l'avance , je vais essayer votre solution , merci pour votre aide , je vous direz le resultat.
    Merci

Discussions similaires

  1. Probleme de somme dans une table virtuelle
    Par backdraf dans le forum Développement
    Réponses: 3
    Dernier message: 24/07/2009, 09h44
  2. Création table virtuelle
    Par boutss dans le forum SQL
    Réponses: 4
    Dernier message: 04/07/2007, 14h33
  3. Tables virtuelles dans un restaurant
    Par spelaprat dans le forum Langage SQL
    Réponses: 6
    Dernier message: 23/04/2007, 17h17
  4. voir les tables virtuel deleted inserted
    Par berceker united dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 19/06/2006, 14h31
  5. LIBPQ - Affichage requete dans table virtuelle
    Par Mike@Nestor dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 27/07/2005, 14h11

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