Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9
  1. #1
    Invité de passage
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2012
    Messages : 6
    Points : 1
    Points
    1

    Par défaut Recherche suivant critères

    Bonjour,
    J'ai la table suivante :
    N°Pal(ette)N(bre )ColisP(ièces par)Colis
    128200
    127210
    228200
    328200
    428200

    Je cherche à identifier :
    1 : les lignes dont les N° Pal sont identiques (pas uniques)
    2 : le nombre de lignes dont les N°Pal sont uniques et dont le nombre de colis et Pcolis sont identiques
    Trop dur pour moi. J'ai tout essayé (select count distinct exists singular)... Help.
    Et merci par avance pour vos retours.

  2. #2
    Invité de passage
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2012
    Messages : 6
    Points : 1
    Points
    1

    Par défaut Correction

    Il faut lire :
    1 28 200
    1 27 210
    2 28 200
    3 28 200
    4 28 200

    (Le retrait ne fonctionne pas !)

  3. #3
    Invité de passage
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2012
    Messages : 6
    Points : 1
    Points
    1

    Par défaut Complément

    Il faut absolument que la requête soit écrite en SQL vFB 1.5

  4. #4
    Modérateur
    Avatar de Cl@udius
    Homme Profil pro Claude Renouleaud
    Développeur informatique
    Inscrit en
    février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Nom : Homme Claude Renouleaud
    Âge : 51
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2006
    Messages : 4 878
    Points : 8 958
    Points
    8 958

    Par défaut

    Salut

    Pour la 1° requête, ceci ?
    Code :
    1
    2
    3
    4
    5
    6
    7
    SELECT * FROM COLISAGE
    WHERE NO_PAL IN (
      SELECT NO_PAL
      FROM COLISAGE
      GROUP BY NO_PAL
      HAVING COUNT(NO_PAL) > 1
    )
    Et pour la 2° (si j'ai bien compris):
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT COUNT(*) AS NB_PALETTE
    FROM COLISAGE
    WHERE NO_PAL IN (
        SELECT NO_PAL
        FROM COLISAGE
        GROUP BY NO_PAL
        HAVING COUNT(NO_PAL) = 1
      )
      AND NB_COLIS = 28
      AND P_COLIS = 200
    A priori ça devrait marcher, mais l'utilisation de IN me gêne un peu si tu as de gros volume.

    @+ Claudius.
    A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira.

  5. #5
    Invité de passage
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2012
    Messages : 6
    Points : 1
    Points
    1

    Par défaut Requête 2

    Merci pour ta réponse.
    La 1ère requête fonctionne nickel (je l'ai arrangée de la sorte):
    Nota : le pg_requete est une fonction permettant de lancer une requête externe dans mon ERP CEGID, depuis un requêteur Windev. (je pense que tu connais mieux que moi...)

    TEXTE1= pg_requete("SELECT 'Pal. '||CGCTTXLIBR||' : '||CGCNNULIBR||' Colis de '||cgcnqteder||' p' from colis WHERE cgktnumero='"+lcktnumero+"' AND CGKTLIGNE='"+LCKTLIGNE+"' AND CGKTPSF='"+LCKTPSF+"' AND cgktsoc='"+wp_soc+"' AND CGCTTXLIBR IN(SELECT CGCTTXLIBR from colis GROUP by CGCTTXLIBR HAVING Count(CGCTTXLIBR)>1)")
    Me donne le texte suivant :
    Pal. 1: 28 Col. de 140p
    Pal. 1: 27 Col. de 140p

    par contre dans la 2nde requête, je veux compter le nombre de lignes uniques, mais regroupées en fonction du nombre de colis et de pièces dans chaque colis.
    Je veux arriver à :
    20 Pal. de 28 Col. x 140p
    13 Pal. de 28 Col. x 130p
    5 Pal. de 27 Col. x 140p.
    Bigre !!! Peut-on faire un And dans un Having ?

  6. #6
    Invité de passage
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2012
    Messages : 6
    Points : 1
    Points
    1

    Par défaut Complément

    Dans la table ci-contre:
    1 28 200
    1 27 210
    2 28 200
    3 28 200
    4 28 210
    5 27 200

    Je veux mon premier message suivant rq 1:
    Pal. 1 : 28 Colis de 200p
    Pal. 1 : 27 Colis de 210p

    Message 2 :
    2 Pal. de 28 Col. x 200p
    1 Pal. de 28 Col. x 210 p
    1 Pal. de 27 Col. x 200p

  7. #7
    Modérateur
    Avatar de Cl@udius
    Homme Profil pro Claude Renouleaud
    Développeur informatique
    Inscrit en
    février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Nom : Homme Claude Renouleaud
    Âge : 51
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2006
    Messages : 4 878
    Points : 8 958
    Points
    8 958

    Par défaut

    Alors pour la requête 2, ceci peut-être:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT COUNT(C1.NO_PAL) NB_PALETTE, C1.NB_COLIS, C1.P_COLIS
    FROM COLISAGE C1
    WHERE EXISTS (
      SELECT C2.NO_PAL
      FROM COLISAGE C2
      WHERE C1.NO_PAL = C2.NO_PAL
      GROUP BY C2.NO_PAL
      HAVING COUNT(C2.NO_PAL) = 1
    )
    GROUP BY
      C1.NB_COLIS, C1.P_COLIS;

    Citation Envoyé par FabLeBon Voir le message
    Bigre !!! Peut-on faire un And dans un Having ?
    Euuh oui, bien sûr.
    A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira.

  8. #8
    Invité de passage
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2012
    Messages : 6
    Points : 1
    Points
    1

    Par défaut Merci


    ça fonctionne très bien.
    Merci encore. ça m'économise beaucoup de recherche...

  9. #9
    Modérateur
    Avatar de Cl@udius
    Homme Profil pro Claude Renouleaud
    Développeur informatique
    Inscrit en
    février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Nom : Homme Claude Renouleaud
    Âge : 51
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2006
    Messages : 4 878
    Points : 8 958
    Points
    8 958

    Par défaut

    Citation Envoyé par FabLeBon Voir le message

    ça fonctionne très bien.
    Merci encore.
    Y'a pas de quoi.

    Un p'tit clic sur le bouton si c'est le cas.
    A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira.

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •