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 :

[SQL Server 8] fonction Max --- selon des conditions


Sujet :

Langage SQL

  1. #1
    Membre habitué Avatar de Baquardie
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2003
    Messages : 267
    Points : 144
    Points
    144
    Par défaut [SQL Server 8] fonction Max --- selon des conditions
    Bonjour 8)

    Je travaille avec sql server 2000.

    J'ai une table contenant des enregistrements, chaque ligne définissant une semaine et une année précise. Je vous montre un exemple de données :

    prix semaine annee
    --------------------- ------- -----
    5.0000 17 2001
    5.0000 18 2001
    5.0000 19 2001
    5.1500 20 2001
    5.1500 21 2001
    5.1500 22 2001
    5.1500 23 2001
    5.1500 24 2001
    5.1500 25 2001
    5.1500 26 2001
    5.1500 27 2001
    5.0000 28 2001
    5.0000 29 2001
    5.0000 30 2001
    Voici ce que je voudrais comme résultat dans une autre table :

    prix --- semaine debut --- semaine fin --- annee debut --- annee fin
    5.00 --- 17 --- 19 --- 2001 --- 2001
    5.15 --- 20 --- 27 --- 2001 --- 2001
    5.00 --- 28 --- 30 --- 2001 --- 2001
    Je n'y arrive pas! La requête que j'ai présentement utilise les min et les max des numéros de semaines par prix...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    drop table ListePRixCometFinale
    select listeprix, codeitem, prix, devise, b.datedebut, c.datefin
    into ListePrixCometFinale
    from
    (
    select listeprix, codeitem, prix, devise, annee, min(semaine) as minsem, max(semaine) as maxsem
    from listeprixcometsem 
    group by listeprix, codeitem, prix, devise, annee
    ) a 
    join jassdate b on (a.minsem = b.semaine and a.annee = b.annee)
    join jassdate c on (a.maxsem = c.semaine and a.annee = c.annee)
    order by 1,2,5
    Mais dans le cas présent, ça me retourne :

    prix --- semaine debut --- semaine fin --- annee debut --- annee fin
    5.00 --- 17 --- 30 --- 2001 --- 2001
    5.15 --- 20 --- 27 --- 2001 --- 2001
    Le prix a 5$ est erroné, puisque de la semaine 20 à 27 ce n'est pas à ce prix là du tout!

    Merci de ne donner votre avis ce sera apprécié. Je me demande bien comment je pourrais la faire celle là! :

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut
    Je me demande bien comment je pourrais la faire celle là!
    moi aussi.

  3. #3
    Membre habitué Avatar de Baquardie
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2003
    Messages : 267
    Points : 144
    Points
    144
    Par défaut
    Citation Envoyé par noinneh
    Je me demande bien comment je pourrais la faire celle là!
    moi aussi.
    haha Merci pareil

    Je pense avoir contourné le problème, lorsque je lis les données sources, je fais suivre les bracket d'année et de semaine. Lorsqu'il est le temps de reconstruire la table comme il faut je les remet en place....

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

Discussions similaires

  1. [SQL SERVER 2000]taille et type des champs
    Par Franck2mars dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 09/05/2006, 11h59
  2. [ms sql server 2000] top 1 dans une condition de jointure ?
    Par sylvkin dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/10/2005, 17h10
  3. [SQL SERVER 2000] Fonction utilisateur : boucle sans fin
    Par galinijay dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/09/2005, 16h03
  4. Fonction MAX dans une condition WHERE
    Par borgfabr dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/10/2004, 16h06

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