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 :

Une View qui ne fait pas ce que je veux


Sujet :

Langage SQL

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Points : 688
    Points
    688
    Par défaut Une View qui ne fait pas ce que je veux
    Bonjour,

    Je suis supposée, pendant les vacances d'un collegue, faire tourner une série de routine sql mais l'une d'entre elles fait preuve de non coopération.
    Et mes connaissances en SQL sont trop minces pour arriver a identifier ce qui coince

    En thérorie, j'étais juste supposée changer une date (mettre 31/07/2009 au lieu de 30/06/2009) mais ca bloque dans une des étapes

    Une des partie des routines est la création de cette vue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE VIEW dbo.STOCK_Transaction
    AS
    SELECT     TOP 100 PERCENT artikelcode, SUM(Qty) AS TransactionQty, SUM(ROUND(Qty * (kostprijs_transactie / wisselkoers), 2)) AS TransactionValue
    FROM         dbo.STOCK_AllTransaction
    WHERE     (datum_creatie < GETDATE()) AND (datum_creatie > CONVERT(DATETIME, '2009-07-31 00:00:00', 102))
    GROUP BY artikelcode, datum_creatie
    Et ensuite, une autre routine insere le résultat dans une une table ou l'artikelcode est supposé etre unique

    Et ce qui me pose probleme, c'est que je me serai attendue a ce que la double SUM() fasse que j'ai une seule quantité et une seule transactionvalue par n) d'article, mais que ca n'est pas le cas. Certain existent en plusieurs exemplaires alors que d'autre on bien été regroupés (j'ai été voir dans la table directement, et j'ai comparé avec le résultat de la vue, une partie est bien agrégée mais d'autre ont été laissé tel quel)

    Et évidement, ca pose probleme pour l'insertion ensuite

    Je n'ai rien changé d'autre que la date, je présume que ca marchait le mois passé et je cherche a comprendre pourquoi ca ne marche plus
    Et si possible, comment le réparer

    Est-ce que quelqu'un a une idée de ce qui cloche?

    C'est du SQL 2000 et je le manipule avec
    Microsoft SQL Enterprise Manager
    Microsoft Corporation
    Version: 8.0

    (Il est possible que je ne sois pas sur le forum le plus adapté, n'hésitez pas a déplacer ce message si un des autres forums SQL est plus adapté)

  2. #2
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 804
    Points : 34 077
    Points
    34 077
    Billets dans le blog
    14
    Par défaut
    Le regroupement (GROUP BY) est fait sur artikelcode et datum_creatie. Si un article apparait avec deux dates différentes, il apparaîtra deux fois dans le résultat de la requête.
    Et comme la colonne datum_creatie n'est pas dans le SELECT, tu ne fais pas la différence entre les deux lignes du même article.

    Si tu ne veux qu'une ligne par article, supprime datum_creatie du GROUP BY.

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Points : 688
    Points
    688
    Par défaut
    Oh, ok merci , ceci explique cela

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

Discussions similaires

  1. Boucle for() qui ne fait pas ce que je veux
    Par Tendhor57 dans le forum Langage
    Réponses: 8
    Dernier message: 01/06/2013, 20h58
  2. Réponses: 18
    Dernier message: 12/05/2009, 15h44
  3. Référence à une DLL qui se fait pas
    Par zooffy dans le forum ASP.NET
    Réponses: 1
    Dernier message: 23/04/2009, 10h06
  4. [Système] bouton qui ne fait pas se que je veut
    Par schats dans le forum Langage
    Réponses: 2
    Dernier message: 27/04/2007, 12h17
  5. Réponses: 2
    Dernier message: 21/04/2006, 15h32

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