ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Forum AtoutFox : SQL - Dédoublonner un curseur selon des critères hiérarchisés   

Sujet
... 12 13 14 15 16 17 18 19 20 21 ...
Accès à un classeur EXCELL 2007 alahem1 - 27/07/2012 19h48
UniversalThread est a vendre Mike Gagnon - 25/07/2012 12h24
aide sur la fonction ASCAN joe.mojito - 24/07/2012 11h20
msoutl32.ocx Jean à Grenoble - 24/07/2012 07h38
double-clic sur le titre d'une fenêtre Jean à Grenoble - 22/07/2012 23h34
Enregistrer l'image d'un formulaire dans un fichier PNG Nakutakoin - 22/07/2012 19h44
[PostGreSql] Accès à une base de données alahem1 - 20/07/2012 15h52
SQL - Dédoublonner un curseur selon des critères hiérarchisés FoxInCloud - 18/07/2012 11h16
GROUP BY ... HAVING FoxInCloud - 17/07/2012 11h20
Annonce vue sur LinkedIn Thierry N - 12/07/2012 18h56
Erreur: le fichier .scx n'est pas une table houcineph - 12/07/2012 14h16
Serveur 2008 ! Jean à Grenoble - 09/07/2012 15h27
Liste des régime de sécurité sociale Luc - 06/07/2012 13h40
Analyse Projet PHILIPPE - 04/07/2012 14h05
XFRX et progressbar OlivierL - 04/07/2012 11h28
[FIC] Adaptation messagebox alahem1 - 27/06/2012 23h40
[HS] Le dessin et l'ordinateur eric leissler - 27/06/2012 17h00
Je serai absent de la réunion avec Mike ! Jean à Grenoble - 26/06/2012 15h53
(HS) Anniversaire de Alan Turing en LEGO ! Francis Faure - 22/06/2012 22h40
LECTURE D'UN FICHIER WINDEV VERSION 4 EXTENSION .FIC O.Abderrazak - 21/06/2012 16h00
... 12 13 14 15 16 17 18 19 20 21 ...

rss Flux RSS des derniers messages

Vous devez vous identifier pour pouvoir poser une question ou répondre.

mer. 18 juillet 2012, 11h16

FoxInCloud
France France

atoutfox.public.association

SQL - Dédoublonner un curseur selon des critères hiérarchisés

Bonjour,

Je bute sur un problème de SQL

Dans les résultats d'une requête, je dois trouver l'enregistrement qui satisfait des conditions dans un certain ordre:
- le budget le plus important (bbib_budg)
- à égalité de budget, le type le plus petit (bbib_type)
- à égalité de type, les français (France)
- entre français, le premier dans l'ordre alphabétique (Bbib_Soci)

Ce code ne me donne pas le résultat escompté
  SELECT;
    BREN_.cTable;
  ,  BREN_.ID;
  ,  BREN_.dItem;
  ,  BREN_.cTitre;
  ,  BREN_.nOccs;
  ,  BREN_.Bbib_Soci;
  , BREN_.ID_BBIB;
  ,  BREN_.Bbib_budg;
  ,  BREN_.Bbib_type;
  ,  BREN_.France;
  FROM BREN_ JOIN (;
    SELECT;
      BREN_.cTitre;
    ,  BREN_.Bbib_budg;
    ,  BREN_.Bbib_type;
    ,  BREN_.France;
    ,  BREN_.Bbib_Soci;
    ,  Max(BREN_.dItem) AS dItem;
    FROM BREN_ JOIN (;
      SELECT;
        BREN_.cTitre;
      ,  BREN_.Bbib_budg;
      ,  BREN_.Bbib_type;
      ,  BREN_.France;
      ,  BREN_.dItem;
      ,  Min(BREN_.Bbib_Soci) AS Bbib_Soci;
      FROM BREN_ JOIN (;
        SELECT;
          BREN_.cTitre;
        ,  BREN_.Bbib_budg;
        ,  BREN_.Bbib_type;
        ,  BREN_.dItem;
        ,  BREN_.Bbib_Soci;
        ,  Max(BREN_.France) AS France;
        FROM BREN_ JOIN (;
          SELECT;
            BREN_.cTitre;
          ,  BREN_.Bbib_budg;
          ,  BREN_.France;
          ,  BREN_.dItem;
          ,  BREN_.Bbib_Soci;
          ,  Min(BREN_.Bbib_type) AS Bbib_type;
          FROM BREN_ JOIN (;
            SELECT;
              BREN_.cTitre;
            ,  BREN_.Bbib_type;
            ,  BREN_.France;
            ,  BREN_.dItem;
            ,  BREN_.Bbib_Soci;
            ,  Max(BREN_.Bbib_budg) AS Bbib_budg;
            FROM BREN_;
            GROUP BY 1,2,3,4,5;
          ) BREN1 ON .T.;
              AND BREN_.cTitre = BREN1.cTitre;
              AND BREN_.Bbib_budg = BREN1.Bbib_budg;
              AND BREN_.Bbib_type = BREN1.Bbib_type;
              AND BREN_.France = BREN1.France;
              AND BREN_.Bbib_Soci = BREN1.Bbib_Soci;
              AND BREN_.dItem = BREN1.dItem;
            GROUP BY 1,2,3,4,5;
        ) BREN2 ON .T.;
            AND BREN_.cTitre = BREN2.cTitre;
            AND BREN_.Bbib_budg = BREN2.Bbib_budg;
            AND BREN_.Bbib_type = BREN2.Bbib_type;
            AND BREN_.France = BREN2.France;
            AND BREN_.Bbib_Soci = BREN2.Bbib_Soci;
            AND BREN_.dItem = BREN2.dItem;
          GROUP BY 1,2,3,4,5;
      ) BREN3 ON .T.;
          AND BREN_.cTitre = BREN3.cTitre;
          AND BREN_.Bbib_budg = BREN3.Bbib_budg;
          AND BREN_.Bbib_type = BREN3.Bbib_type;
          AND BREN_.France = BREN3.France;
          AND BREN_.Bbib_Soci = BREN3.Bbib_Soci;
          AND BREN_.dItem = BREN3.dItem;
        GROUP BY 1,2,3,4,5;
    ) BREN4 ON .T.;
        AND BREN_.cTitre = BREN4.cTitre;
        AND BREN_.Bbib_budg = BREN4.Bbib_budg;
        AND BREN_.Bbib_type = BREN4.Bbib_type;
        AND BREN_.France = BREN4.France;
        AND BREN_.Bbib_Soci = BREN4.Bbib_Soci;
        AND BREN_.dItem = BREN4.dItem;
      GROUP BY 1,2,3,4,5;
  ) BREN5 ON .T.;
      AND BREN_.cTitre = BREN5.cTitre;
      AND BREN_.Bbib_budg = BREN5.Bbib_budg;
      AND BREN_.Bbib_type = BREN5.Bbib_type;
      AND BREN_.France = BREN5.France;
      AND BREN_.Bbib_Soci = BREN5.Bbib_Soci;
      AND BREN_.dItem = BREN5.dItem;
  INTO CURSOR BREN__


une idée?

Permalink : http://www.atoutfox.org/nntp.asp?ID=0000009403
11 958 messages dans le forum • Liste complète des messages

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2013.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0