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 :

Requête sur deux tables avec fonction COUNT


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 282
    Par défaut Requête sur deux tables avec fonction COUNT
    Bonjour,

    Je suis débutant en requête Sql et Je cherche à connaitre tous les dossiers qui ne possède pas d'actes.

    Je possède deux tables.

    1ere Table : Hos

    [Num_Dossier] [Date]
    
    0001.......01/01/2013
    0002.......01/01/2013
    0003.......01/02/2013
    2eme Table : Acc

    [Num_Dossier] [Date] [UtiCrea] [Code]
    
    0001......01/01/2013.....User1......C
    0002......01/01/2013.....User1......C
    Donc je souhaiterais avoir comme résultat le dossier 0003

    Comment dois je m'y prendre.

    Merci d'Avance

  2. #2
    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,
    Je ne vois pas trop le rapport avec Count()...
    Il faut sois passer par une sous-requête avec NOT IN, NOT EXISTS, soit par une jointure externe.

    Tatayo

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 282
    Par défaut
    c'est à dire?

    Je suis débutant et je connais parfaitement le select * from where une condition mais au dela, je rame un peu.

    Merci

  4. #4
    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
    Peut-être qu'un peu de lecture t'aidera à mieux comprendre...
    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.

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953
    Par défaut
    Je vous invite à lire les tutoriels de la rubrique SQL :
    http://sql.developpez.com/

    Pour les sous-requêtes c'est ici :
    http://sqlpro.developpez.com/cours/sqlaz/sousrequetes/

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 282
    Par défaut
    Bonsoir,

    Je pense avoir trouvé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT T_HOS.Num_Dossier, T_ACC.Num_Dossier
    FROM T_HOS
    LEFT JOIN T_ACC ON T_HOS.Num_Dossier = T_ACC.Num_Dossier
    WHERE T_ACC.Num_Dossier IS NULL
    Je cherche maintenant à mettre comme condition, les dossiers créer le par exemple 01/08/2013

    Pour cela j'utilise :
    WHERE Date > '01082013'
    AND DATE < '02082013'

    Je ne sais ou mettre cette condition dans ma requete.

    Encore merci

  7. #7
    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,
    Ca dépend de la table concernée (les deux ont une colonne date):
    si c'est la table T_HOS, le filtre va dans la clause where
    si c'est la table T_ACC, le filtre va dans la jointure. Sinon celle-ci va de facto se "transformer" en jointure interne.

    Mais il suffisait de faire le test, et de comparer les deux résultats.

    Tatayo.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 282
    Par défaut
    Merci pour vos réponses.

    J'ai essayer avec phpmyadmin et ma base exemple.

    Cela marche.

    Lorsque je veux le faire à mon travail, cela ne marche pas.

    Je travaille avec sqldevelopper.

    J'ai essayer de retranscrire ma requete ce qui donne ceci mais cela ne marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT HOS.NUHOHO, ACC.NUHOAC
    FROM HOS
    WHERE HOS.NUHOHO(+) = ACC.NUHOAC
    Merci

  9. #9
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953
    Par défaut
    Lorsque je veux le faire à mon travail, cela ne marche pas.
    Ca ne marche pas, n'est pas un message d'erreur.
    Vous pouvez utiliser la syntaxe ANSI "LEFT JOIN" sur oracle (si vous êtes au moins en version 9i ce qui paraît probable)

  10. #10
    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
    C'est normal que ta requête ne fonctionne pas avec MySQL ; l'opérateur (+) = appartient à Oracle, pas au langage SQL.
    A moins que tu ne sois contraint de travailler sur des versions d'Oracle antérieures à la 9, tu as tout intérêt à supprimer cet opérateur de ta mémoire.
    Tu ne trouveras que des avantages à utiliser la syntaxe normalisée (LEFT|RIGHT) [OUTER] JOIN pour tes jointures externes.
    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.

Discussions similaires

  1. Requête sur deux tables avec incrément de champ
    Par LB dans le forum Langage SQL
    Réponses: 12
    Dernier message: 15/11/2014, 17h41
  2. Requête sur trois tables avec deux sommes
    Par gpz1963 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/09/2013, 17h38
  3. sql requête sur deux tables avec cumul..
    Par Chris'S dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/01/2010, 23h23
  4. [Access] Fonction TOP dans une requête sur deux tables
    Par pc75 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/07/2007, 09h31
  5. Problème de requêtes sur deux tables
    Par Pymm dans le forum Access
    Réponses: 6
    Dernier message: 06/09/2005, 09h06

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