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 :

[Débutant] Distinct sur deux champs


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 61
    Points : 33
    Points
    33
    Par défaut [Débutant] Distinct sur deux champs
    Bonjour à tous,

    Je fais mes premiers pas dans la jungle SQL. Mes besoins ont été jusqu'alors assez limités puisqu'ils concernent la liaison d'une base OpenOffice avec MySQL

    Jusqu'alors les simples requête de type SELECT me convenait pour faire ce que j'avais besoin.
    Cependant aujourd'hui je souhaite aller un peu plus loin. Et pour cela j'ai besoin de regrouper en une colonne à créer "Date_Production", les valeurs distinctes des colonnes présentes dans ma Table Stock "Date_Production1" et "Date_Production2".

    Pour information:
    Ma table Stock contient 7 champs: ID_Palette ; Nb_Colis ; Categorie ; Date_Production1 ; Date_Production2 ; Affectation ; Client

    Puis-je passer par une requête simple type SELECT ou d'autres procédés de sous requêtes sont-ils nécessaires?

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 882
    Points : 53 063
    Points
    53 063
    Billets dans le blog
    6
    Par défaut
    Commencez par respecter ceci :
    http://www.developpez.net/forums/ann....php?f=37&a=69

    A +

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 61
    Points : 33
    Points
    33
    Par défaut
    Bonjour,

    J'avais pris connaissance des règles du forum. Mais je pensais que ma question pouvait être résolue assez rapidement par des personnes ayant plus d'expériences que moi sur le language SQL.

    Maintenant, il est fort probable que je ne me sois pas exprimé clairement du fait que je soit débutant dans SQL. Et je comprends parfaitement qu'il faille se conformer à certaines normes pour être compris.

    Ainsi, j'ai refait toute la démarche de création de table telle que je l'ai eu dans PhpMyAdmin pour repartir du bon pied.

    Voici pour la création de la table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE `Stock` (
    `ID_Palette` VARCHAR( 10 ) NOT NULL ,
    `Nb_Colis` INT( 2 ) NOT NULL ,
    `Catégorie` VARCHAR( 50 ) NOT NULL ,
    `Date_Production1` DATE NULL ,
    `Date_Production2` DATE NULL ,
    `Affectation` TINYINT( 1 ) NOT NULL ,
    `Client` VARCHAR( 50 ) NULL ,
    PRIMARY KEY ( `ID_Palette` ) 
    ) ENGINE = MYISAM
    Pour l'insertion de quelques enregistrements:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    INSERT INTO `stock` (
    `ID_Palette` ,
    `Nb_Colis` ,
    `Catégorie` ,
    `Date_Production1` ,
    `Date_Production2` ,
    `Affectation` ,
    `Client` 
    )
    VALUES (
    '1-1', '50', 'Catégorie 1', '2007-12-03', NULL , '0', NULL 
    ), (
    '1-2', '40', 'Catégorie 1', NULL , '2007-12-04', '0', NULL 
    ), (
    '2-1', '30', 'Catégorie 1', '2007-12-04', NULL , '0', NULL 
    ), (
    '3-1', '20', 'Catégorie 1', '2007-12-03', NULL , '0', NULL 
    ), (
    '3-2', '10', 'Catégorie 2', '2007-12-05', NULL , '0', NULL 
    );
    Voici la requête que j'avais faite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DISTINCT `Date_Production1` , `Date_Production2` 
    FROM `stock` 
    WHERE `Affectation` =0
    AND `Catégorie` = 'Catégorie 1'
    LIMIT 0 , 30
    Les résultats obtenus sont les suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Date_Production1 | Date_Production2
    -----------------------------------
    2007-12-03           Null
    Null                      2007-12-04
    2007-12-04           Null
    Voici ce que je voudrais avoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Date_Production
    ---------------
    2007-12-03
    2007-12-04
    C'est à dire que j'aimerais regrouper les dates distinctes de productions des clonnes Date_Production1 et Date_Production2 au sein d'une seule colonne.

    Merci de votre aide.

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 034
    Points : 23 779
    Points
    23 779
    Par défaut
    Bonjour,

    Pour ça, il faut utiliser la fonction COALESCE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DISTINCT COALESCE(Date_Production1 , Date_Production2)
    FROM `stock` 
    WHERE `Affectation` =0
    AND `Catégorie` = 'Catégorie 1'
    LIMIT 0 , 30
    ced

Discussions similaires

  1. Fonctions sur deux champs distincts
    Par Jordan62 dans le forum jQuery
    Réponses: 4
    Dernier message: 25/02/2014, 10h38
  2. COUNT DISTINCT sur deux champs
    Par Ceubex dans le forum Langage SQL
    Réponses: 1
    Dernier message: 08/01/2014, 15h11
  3. distinct sur deux champs
    Par xzéna dans le forum Requêtes
    Réponses: 4
    Dernier message: 07/12/2012, 16h45
  4. Requête sur deux champs couplée à un DISTINCT ?
    Par phil59500 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/01/2010, 22h47
  5. Requête SQL sur deux champs - débutant
    Par mygeomatic dans le forum Langage SQL
    Réponses: 6
    Dernier message: 23/12/2009, 17h26

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