Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Sql clause
Message
De
23/12/2005 13:58:45
 
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:
01080616
Vues:
11
This message has been marked as the solution to the initial question of the thread.
>Fabio,
>
>
>For iresidentid = 1753 i want 01/04/2005 to 09/04/2005...
>FOR iresidentid = 1754 i want nothing ...
>
>bernhart
>
>

The example's data are too much little,
however:
  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 )

* not a very efficient solution

SELECT dDate ;
  FROM dDate ;
  JOIN (SELECT A.dFin+1 dHoleStart,MIN(B.dDebut)-1 dholeEnd ;
	FROM Etats A JOIN Etats B ON A.iresidentid = B.iresidentid AND A.dFin < B.dDebut;
	GROUP BY 1) Holes ON dDate BETWEEN dHoleStart AND dholeEnd
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform