Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Sql clause
Message
From
23/12/2005 13:18:22
 
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Title:
Environment versions
Visual FoxPro:
VFP 9
OS:
Windows XP SP2
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01080241
Message ID:
01080599
Views:
16
>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
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform