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 :

Trouver les périodes ou les mois manquants


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    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
    Par défaut Trouver les périodes ou les mois manquants
    Salut tous le monde, je suis coincer sur une requête, j'essaye de trouver les périodes manquantes pour les adhérents qui paye trimestriellement et les mois manquants pour ceux qui paye mensuellement. Chaque Adhérent paye pour ces salaries par trimestre ou par mois tous dépends du nombre des ces effectifs. le but et de trouver la période manquante ou le mois manquant dans tous les payements par adhérent.
    Structure de la Table :

    NumAdh
    NumAdh Journee Periode Effectif Montant
    00258975 10/04/2020 T12020 5 45000.00
    00258975 15/07/2020 T22020 5 45000.00
    00258975 05/10/2020 T32020 5 45000.00
    00258975 03/04/2021 T12021 7 75000.00
    Sur le tableau par exemple il manque la Période T42020.
    Voila ma requête pour trouver les périodes, mais je n'arrive pas à détecter la ou les période qui manque afin de les affiches, merci pour votre aide.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT Distinct 
    			  Case When SubStr(e.Periode, 5, 1) =  ''T'' Then e.Periode Else '''' End Periode_Trim					 
    			, Case When SubStr(e.Periode, 5, 1) <> ''T'' Then e.Periode Else '''' End Periode_Mens
    		--	, Case When SubStr(e.Periode, 5, 1) =  ''T'' Then e.Effectif Else 0 End Eff_Trim			
    		--	, Case When SubStr(e.Periode, 5, 1) <> ''T'' Then e.Effectif Else 0 End Eff_Mens					
    			, Case When SubStr(e.Periode, 5, 1) =  ''T'' Then To_Char(t.DebuActivite, ''YYYYMM'') 
    				   When SubStr(e.Periode, 5, 1) <> ''T'' Then To_Char(t.DebuActivite, ''YYYYMM'') Else '''' End Date_Debut			
     
    	From Adh_Payment e, Adherent t
    	Where e.NumAdh = ''00258975'' And t.NumAdh = e.NumAdh
    	Order By 1 Desc, 2 Desc
    DB : Oracle 11g

  2. #2
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    Bonjour,
    En passant ...
    J'aurais créé un table Periode P avec les différentes périodes T12020, T22020,T32020,T42020,T12021 etc.
    puis un simple left join en partant de cette table P vers NumAdh avec comme condition Periode (Table NumAdh) à NULL et les adhérents en retard ou autre sortent facilement ...

  3. #3
    Membre confirmé
    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
    Par défaut
    Merci pour la réponse, mais je n'ai pas le droit créer aucun table, tous ce fait par l'administrateur, aussi il n'a pas de Période nul, y'a t'il une autre solution. Merci

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 428
    Par défaut
    Bonjour,
    Il faudrait nous donner la description des tables en jeu, un jeu de test et le résultat attendu.

    Sinon j'ai une petite question: tu nous dis qu'il manque la période T42020.
    Mais d'où sort cette période ? Dans quelle table se trouve t'elle ?
    A priori elle n'est pas dans la table adh_Payment, sinon pas de paiement -> pas de période. Et elle n'a rien à faire dans la table Adherent.
    Donc à priori il manque au moins une table dans la requête, celle qui permet d'avoir la liste des période.

    Tatayo.

  5. #5
    Membre confirmé
    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
    Par défaut
    Il n y'a pas de Période dans une autre table, se que je cherche, sait en classent les périodes je doit détecter la ou les quels manque à l'adhérent parmi tous.
    Ex : Entre T12020 et T42020 il manque à déclarer T22020 et T32020, j'espère être claire, je fais de mon mieux.

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 134
    Par défaut
    Si ces valeurs sont absentes de la base de données, comment une requête pourrait-elle en fournir la liste ?

    Il faut d'une manière ou d'une autre que la liste complète des périodes soit disponible.
    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.

Discussions similaires

  1. [MySQL-5.5] Trouver les enregistrements manquants
    Par berthomhc dans le forum Requêtes
    Réponses: 2
    Dernier message: 30/11/2016, 00h56
  2. Trouver les librairies manquantes
    Par shadypierre dans le forum Général Python
    Réponses: 6
    Dernier message: 16/05/2010, 22h27
  3. Requête pour trouver les enregistrements manquants
    Par Bes74 dans le forum Requêtes
    Réponses: 1
    Dernier message: 28/07/2009, 16h57
  4. Comment trouver les valeurs manquante d'une série ?
    Par NicoNGRI dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/10/2006, 09h38
  5. [INSTALL] où trouver les packages manquant ?
    Par cdu dans le forum Oracle
    Réponses: 4
    Dernier message: 01/04/2006, 12h03

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