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

SQL Oracle Discussion :

Jointure complexe [8i]


Sujet :

SQL Oracle

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Points : 71
    Points
    71
    Par défaut Jointure complexe
    Salut, la requête suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT t.NumeroCot || Cle(t.NumeroCot) Num_Emp
    , Sum(t.debit), Sum(t.Credit), Sum(t.debit) - Sum(t.Credit) Differ
      FROM Linc.Secu_Ecr t , (SELECT DISTINCT Numerocot, Periode, Nature, Journee
                                     FROM Linc.Secu_Ecr WHERE Journee = '20160223' And Canal = '12'        ) b
     WHERE t.NumeroCot = b.NumeroCot  AND t.Periode = b.Periode --AND Substr(t.journee,1,4) = Substr(b.journee,1,4) 
     AND t.Nature = b.Nature AND t.Ecriture <> 'TC' AND t.Ecriture <> 'MC'
     Group By t.NumeroCot 
     Order by t.NumeroCot
    à pour bute de trouver une journée comptable spécifique et de sommer le DEBIT et le CREDIT sachant que les journée du DEBIT peuvent être différente de celle de la journée rechercher selon cette image:
    Nom : Sans titre.png
Affichages : 253
Taille : 13,5 Ko
    Images attachées Images attachées  

  2. #2
    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 788
    Points
    30 788
    Par défaut
    Quelle est la question ?
    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.

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Points : 71
    Points
    71
    Par défaut
    Salut, la question est de trouver mieux que cette requête ou l'amélioré . Merci

  4. #4
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Points : 71
    Points
    71
    Par défaut
    Salut, aucune réponse à mon problème, il faut que je trouve la solution pour améliorer ou trouver une autre requête qui donne un résultat précis

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 129
    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 129
    Points : 38 521
    Points
    38 521
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Le problème est que vous n'indiquez pas selon quelles règles il faut faire le calcul, qu'est ce qui permet de savoir que les lignes dont vous avez entouré les dates ou les montants, sont celles à retenir ?

    De plus vous voulez "améliorer" la requête, mais sur quel critère ? performances, portabilité, lisibilité ?...

  6. #6
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Points : 71
    Points
    71
    Par défaut
    Salut et merci,
    j'ai n'ai pas compris ce que vous me demandez, en autre mon calcul se porte sur la somme du débit et le crédit selon le critère de la journée choisie en sachant que la date du débit peu être différente de celle du crédit.

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 129
    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 129
    Points : 38 521
    Points
    38 521
    Billets dans le blog
    9
    Par défaut
    Le problème c'est que vous n'expliquez pas pourquoi
    - dans votre requete vous filtrez "WHERE Journee = '20160223' "
    - dans votre tableau vous entourez la date "20160128"
    - et vous prenez les montants de lignes datées du 20160128 pour le crédit et 20160121 pour le débit
    la question est donc :
    Comment savoir que pour la journée du 20160223, le crédit est positionné au 20160128 et le débit au 20160121 !
    Peut être la requete ne correspond elle pas à l'image, mais il faut a minima expliquer comment vous associez les lignes débit et crédit puisque la date est différente.

  8. #8
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Points : 71
    Points
    71
    Par défaut
    Salut et merci pour le soutien, le problème et comment arrivé à sommer le débit et le crédit d'une journée souhaité. Le 23/02/2016 et un exemple de la journée recherché. le critère se porte sur la journée et la période ex: 23/02/2016 et 2015T4 pour chaque employeur, vous avez remarquer que j'ai filtré aussi sur le libelle afin de m'approcher plus du résultat souhaité.

    Les écritures portés sur le débit peuvent être de la même journée ou différente. j'espère avoir bien expliqué mon problème.

  9. #9
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 129
    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 129
    Points : 38 521
    Points
    38 521
    Billets dans le blog
    9
    Par défaut
    OK donc le critère de jointure est le trimestre

    Alors vous pouvez faire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    WITH MYCTE AS                                              
        (SELECT Periode, SUM(Debit) AS DB, SUM(Credit) AS CR   
         FROM Secu_Ecr                                              
         GROUP BY Periode)                                      
    SELECT TB.NumeroCot , TB.Journee, CT.DB, CT.CR                  
    FROM Secu_Ecr  AS TB                                            
    INNER JOIN MYCTE AS CT                                     
       ON CT.Periode = TB.Periode                                
     ;
    Ajoutez le filtre sur la date qui vous intéresse et les colonnes supplémentaires dnt vous avez besoin

  10. #10
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Points : 71
    Points
    71
    Par défaut
    Cette requête ne marche pas, j'utilise Oracle 8 et les INNER JOIN ne sont pas reconnu.

  11. #11
    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 788
    Points
    30 788
    Par défaut
    Et tu ne sais pas convertir en jointure "à l'ancienne", sans JOIN ?
    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.

  12. #12
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Points : 71
    Points
    71
    Par défaut
    Si je le savais je l'aurais fait sans vous ennuyer

  13. #13
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 129
    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 129
    Points : 38 521
    Points
    38 521
    Billets dans le blog
    9
    Par défaut
    Nous vous avions déjà répondu sur ce point il y a peu : http://www.developpez.net/forums/d15...i/#post8551928

  14. #14
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Points : 71
    Points
    71
    Par défaut
    Je sais travail avec (+) mais sur des requête simple mais je ne sais pas comment convertir la requête qui m'a était en voyer par ESCARTEFIGUE

  15. #15
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    En regardant rapidement sur le net...

    Exemple de conversion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select *
      from EMP inner join DEPT
        on emp.deptno = dept.deptno
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    -- To outer join 8i, use a (+)
    -- Ceux de la table EMP qui match DEPT ou non (dans ce cas les lignes DEPT sont nul)
    select * from emp, dept where emp.deptno = dept.deptno(+)
    minus
    -- Ceux de la table EMP qui match DEPT
    select * from emp, dept where emp.deptno = dept.deptno
    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  16. #16
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Points : 71
    Points
    71
    Par défaut
    Patrick Kolodziejczyk il s'agit de la même table et pas de deux tables différentes

  17. #17
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Cela ne change absolument rien sur la mise en pratique d'un inner join pour Oracle 8.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  18. #18
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Points : 71
    Points
    71
    Par défaut
    J'ai essayer est je n'arrive pas un coup de pousse S.V.P
    Pouvez-vous me donné un extrait de conversion de l’exemple de Patrick Kolodziejczyk

  19. #19
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 129
    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 129
    Points : 38 521
    Points
    38 521
    Billets dans le blog
    9
    Par défaut
    C'est plus un coup de pouce, c'est un troupeau de buffles pour tirer la charrette !

    Voilà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    WITH MYCTE AS                                              
        (SELECT Periode, SUM(Debit) AS DB, SUM(Credit) AS CR   
         FROM Secu_Ecr                                              
         GROUP BY Periode)                                      
    SELECT TB.NumeroCot , TB.Journee, CT.DB, CT.CR                  
    FROM Secu_Ecr  AS TB,                                            
         MYCTE AS CT                                     
    WHERE CT.Periode = TB.Periode

  20. #20
    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 788
    Points
    30 788
    Par défaut
    Mais Oracle 8i ne prend pas non plus en charge les CTE...
    Et il y a de fortes chances que le concept de table dérivée dépasse les compétences de notre posteur...

    Un petit tour sur les tutoriels permettrait sans doute d'acquérir les bases indispensables du langage SQL.
    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.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Requete avec jointure complexe
    Par chjerome dans le forum Requêtes
    Réponses: 4
    Dernier message: 13/05/2008, 16h53
  2. [BO 6.5] Jointure complexe et tables dérivées
    Par tegestobis dans le forum Designer
    Réponses: 9
    Dernier message: 09/01/2008, 14h21
  3. Requête : Jointure Complexe
    Par xwawa dans le forum Langage SQL
    Réponses: 4
    Dernier message: 09/03/2006, 10h10
  4. [MySQL 4.0.15] Jointure complexe
    Par Carter dans le forum Langage SQL
    Réponses: 4
    Dernier message: 03/02/2006, 14h31
  5. Auto jointure complexe
    Par ricobye dans le forum Langage SQL
    Réponses: 11
    Dernier message: 19/01/2006, 16h02

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