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

Requêtes MySQL Discussion :

Requête SELECT | GET complexe [MySQL-5.7]


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    septembre 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Vietnam

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : septembre 2016
    Messages : 30
    Points : 13
    Points
    13
    Par défaut Requête SELECT | GET complexe
    Bonjour,

    Je dois réaliser une requête complexe et j'aurais besoin d'un expert pouvant m'aiguiller.

    Je dois parcourir ma table et identifier toutes les customerID, individuellement, qui ont une même date. Par exemple, si l'on prend la table ci-dessous :

    id customerID Date
    1 1212 2020-08-01 X
    2 1212 2020-08-01 X
    3 1213 2020-10-21
    4 1214 2020-10-21
    5 1215 2020-10-21
    6 1216 2020-11-17 X
    7 1216 2020-09-11
    8 1216 2020-11-17 X
    9 1217 2020-07-05
    10 1217 2020-07-10
    11 1217 2020-07-12
    12 1218 2020-08-15
    13 1219 2020-08-15
    14 1220 2020-08-15
    15 1221 2020-12-11 X
    16 1221 2020-10-03
    17 1221 2020-11-26
    18 1221 2020-12-11 X
    19 1222 2020-10-07 X
    20 1222 2020-10-07 X

    la customerID 1212 possède deux records avec la même date
    la customerID 1216 possède trois records, dont deux avec la même date
    la customerID 1221 possède quatre records dont deux avec la même date
    enfin
    la customerID 1222 possède deux records avec la même date

    L'idée est que lorsque j'ai cette requête fonctionnelle, je puisse marquer dans ma table (index), les customerID qui ont au moins deux dates identiques, en indiquant par exemple en rouge gras les customerID retournées par la requête (je fais cela dans ma vue et je sais comment faire).

    Merci d'avance de vos suggestions.

    Bonne journée,

    Marc

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    8 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 8 770
    Points : 29 253
    Points
    29 253
    Par défaut
    Pour identifier les tuples (CustomerId, Date) qui apparaissent plusieurs fois dans la table; la requête suivante est suffisante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select  CustomerId
        ,   `Date`
    from    matable
    group by CustomerId
        ,   `Date`
    having  count(*) > 1
    Pour ajouter une colonne avec un indicateur de présence de doublon, on pourrait faire une jointure externe entre la table et cette requête.
    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 à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    septembre 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Vietnam

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : septembre 2016
    Messages : 30
    Points : 13
    Points
    13
    Par défaut
    @All_24

    Merci beaucoup pour ton retour.

    Cela fonctionne, j'ai adapte en query builder :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $allcompleted = DB::table('orders_detail_new')
    			->select('orders_detail_new.customerID','orders_detail_new.deliverydate',DB::raw('COUNT(*) as count'))
    			->where('orders_detail_new.statusorderID','=',4)
    			->groupBy('orders_detail_new.customerID','orders_detail_new.deliverydate')
    			->having('count', '>' , 1)
                ->get();

    Merci encore et bonne journee,

    Marc

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    8 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 8 770
    Points : 29 253
    Points
    29 253
    Par défaut
    Citation Envoyé par marc-q Voir le message
    j'ai adapte en query builder
    ... ou : comment transformer une requête SQl lisible et explicite en un "machin" indigeste et propre à générer des incompréhensions
    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. Requete select LIKE un peu complexe
    Par dembroski dans le forum Requêtes
    Réponses: 1
    Dernier message: 21/05/2010, 11h13
  2. pbl delphi requete SELECT
    Par Rico l'abricot dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/02/2004, 09h15
  3. Requete select pour récupérer les no match entre 2 tables
    Par Celina dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/12/2003, 11h59
  4. problemes de performances avec les requetes select
    Par berry dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/07/2003, 13h39
  5. requete SELECT avec un nombre constant
    Par gurumeditation dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/07/2003, 20h04

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