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 :

Demande d'aide sur jointures [2016]


Sujet :

Développement SQL Server

  1. #1
    Membre averti
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Janvier 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 197
    Points : 314
    Points
    314
    Par défaut Demande d'aide sur jointures
    Bonjour,

    je bute sur une nouvelle difficulté pour moi;

    je voudrais lier ITMCOST qui contient un coût à date, et ramener la première valeur trouvée si ITCSTRDAT_0 <= ACCDAT_0


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    select SINVOICED.NUM_0, SINVOICED.ITMREF_0,  sum(SINVOICED.QTY_0 ) as QTY
    
    from CLSTREIT.SINVOICE SINVOICE, CLSTREIT.SINVOICED SINVOICED
    
    left outer join CLSTREIT.ITMCOST ITMCOST on ITMCOST.ITMREF_0 = SINVOICED.ITMREF_0 --and ITCSTRDAT_0 <= SINVOICE.ACCDAT_0
    
    where SINVOICED.NUM_0=SINVOICE.NUM_0
    
    and SINVOICED.ITMREF_0 = '1010109' and SINVOICE.ACCDAT_0 >= '01/01/2021'
    
    group by SINVOICED.NUM_0, SINVOICED.ITMREF_0

    Problème : la date facture n'est que dans l'entête SINVOICE

    comment lier ITMCOST à SINVOICE en ayant déjà sur pointé l'article ITMREF_0 présent dans ITMCOST et SINVOICED
    et ne ramener que le premier coût trouvé par rapport à la date

    Je pense qu'il faut passer par une requête imbriquée ...

    Merci de votre aide

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 126
    Points : 38 509
    Points
    38 509
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Pour trouver la première ou la dernière ligne selon un critère de tri, plusieurs solutions sont disponibles dans mon blog ICI

    Vous devriez coder la jointure entre SINVOICE et SINVOICED avec l'opérateur JOIN plutôt que de mélanger les jointures à l'ancienne d'un côté et à la norme SQL 1992 de l'autre.

    soit :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select SINVOICED.NUM_0
         , SINVOICED.ITMREF_0
         , sum(SINVOICED.QTY_0 ) as QTY
    from CLSTREIT.SINVOICE  SINVOICE
    inner join  CLSTREIT.SINVOICED SINVOICED
       on SINVOICED.NUM_0=SINVOICE.NUM_0
    left outer join CLSTREIT.ITMCOST ITMCOST 
       on ITMCOST.ITMREF_0 = SINVOICED.ITMREF_0 
    where...

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 776
    Points
    30 776
    Par défaut
    L'usage d'une jointure externe entre SINVOICED et ITMCOST supposerait qu'il existe des produits facturables qui ne possèdent pas de prix unitaire...
    Est-ce fonctionnellement possible ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Membre averti
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Janvier 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 197
    Points : 314
    Points
    314
    Par défaut
    Bonjour Escartefigue

    merci pour le coup de main, j'ai bien avancé, et ma requête fonctionne au niveau jointures.

    Pour la remarque concernant "l'ancienne" jointure, je suis parti d'une requête existante et je n'y ai pas prêté attention.




    al1_24

    j'ai bien évidemment un prix dans la facturation, ce que je cherche, c'est lier une data 'coût de revient' en plus des infos facture.



    cordialement,

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

Discussions similaires

  1. [MS Query] neophyte demande aide sur jointures SQL
    Par thorgal972 dans le forum Langage SQL
    Réponses: 19
    Dernier message: 27/11/2006, 17h13
  2. Demande d'aide sur les regexp
    Par Uld dans le forum Langage
    Réponses: 1
    Dernier message: 18/08/2006, 22h15
  3. [VB6] Demande d'aide sur un programme !
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/06/2006, 11h49
  4. Demande d'aide sur XPDL (XML Process Definition Language)
    Par Bebert71 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 17/02/2006, 09h23
  5. demande d'aide sur samba
    Par marcoss dans le forum Développement
    Réponses: 5
    Dernier message: 04/12/2003, 19h38

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