Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Sql clause
Message
De
23/12/2005 13:18:22
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Titre:
Versions des environnements
Visual FoxPro:
VFP 9
OS:
Windows XP SP2
Database:
Visual FoxPro
Divers
Thread ID:
01080241
Message ID:
01080599
Vues:
15
>Thank Fabio,
>
>look at :
>http://www.amline.be/UT_DOC/utsql1.jpg
>
>I want for iresidentid = 1753 =>
>01/04/2005 TO 09/04/2005 ( But NOT 01/01/2005 TO 08/01/2005 )
>IN temp , it give me bads results....
>
>I want result also for each iresidentid ( 1753 , 1754 etc....
>
>A idea ?
>
>Good morning
>
>bernhart
>
  CREATE CURSOR dDate ( dDate D )

  FOR i = 1 TO 180

    INSERT INTO dDate VALUES( {^2005/01/01} - 1 + m.i )

  ENDFOR

  CREATE CURSOR Etats (dDebut D, dFin D , iresidentid i , iid i )


  *-- je veux touver toutes les dates NON comprises entre le {^2005/01/08}
  *-- et le {^2005/06/25} pour chaque resident.


  INSERT INTO Etats VALUES ({^2005/01/08}, {^2005/03/30} , 1753 , 1 )
  INSERT INTO Etats VALUES ({^2005/04/10}, {^2005/06/25} , 1753 , 2 )
  INSERT INTO Etats VALUES ({^2005/01/10}, {^2005/06/25} , 1754 , 2 )

* Tamar's workaround for VFP between bug
SELECT dDate ;
  FROM dDate ;
  WHERE NOT EXISTS ( ;
    SELECT * FROM Etats ;
      WHERE dDebut <=dDate AND dDate =< dFIN );

* Another solution
SELECT dDate ;
  FROM dDate LEFT JOIN Etats ON dDate BETWEEN dDebut AND dFIN;
  WHERE Etats.dDebut IS NULL
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform