Avatar billede rashid Praktikant
27. juni 2001 - 09:12 Der er 8 kommentarer og
1 løsning

SQL i FOXPRO

Hej
kan man lave en sql-sætning der sætter en datovariabel til den 01. i forrige måned ud fra en vilkårlig dato i indeværende måned. Der skal tages højde for at årstallet når man laver beregningen i Januar md
Avatar billede martinlind Nybegynder
27. juni 2001 - 09:35 #1
Du kan helt sikkert lave en SQL Proc der kan.
Avatar billede rashid Praktikant
27. juni 2001 - 10:16 #2
Kan nogen hjælpe med proceduren ??
Avatar billede martinlind Nybegynder
27. juni 2001 - 10:18 #3
kig i FOXPRO hjælpen, der må da være noget SQL hjælp
Avatar billede prebenc Nybegynder
27. juni 2001 - 11:33 #4
Lav en variabel:
tmp_dato = ctod(\'01.\' +;
  alltrim(str(month(date())) +;
  \'.\' + iif(month(date()) = 1,;
  alltrim(str(year(date()-1),alltrim(str(year(date()))))
brug denne variabel direkte i din Query
Hvis du skal bruge den via en SQL-conenection mod en SQL-server bruger du variablen ?tmp_dato f.eks.
select * from <tabel> where <datofelt> = ?tmp_dato. Husk at tage hensyn til sprogdatovarianter.

Mvh Preben
Avatar billede rashid Praktikant
27. juni 2001 - 11:42 #5
Tak for hjælpen Preben - Jeg prøver om det virker.
Hvis det er godt får du naturligvis dine points.

:)
Avatar billede rashid Praktikant
25. juli 2001 - 14:48 #6
hej prebenc
jeg kan ikke få dit lille script til at fungere, måske er det foxpro der ikke vil acceptere det.
vil du kigge på det igen ??

Avatar billede rashid Praktikant
24. august 2001 - 11:18 #7
Hmm. Jeg lukker dette sp. da der ikke er kommet svar omkring sp.
Avatar billede bengun Novice
01. november 2001 - 14:17 #8
Hej Rashid, jeg håber at du har fået løst problemet, men hvis ikke er løsningen her.

*--
*-- Find d. 1 i forrige måned udfra dagsdato
*--
dDate = DATE()

*-- Find årstal
nYear = YEAR(dDate)

*-- Find forrie måned
nMonth = MONTH(dDate) - 1

*-- Hvis måned <= 0, så ligger forrige måned
*-- i forrige år
IF nMonth <= 0
    nMonth = 12
    nYear = nYear - 1
ENDIF

*-- Angiv dag   
nDay = 1

*-- d. 01 i forrige måned udfra dagsdato
dPrevDate = CTOD(LTRIM(STR(nDay,2))+\".\"+LTRIM(STR(nMonth,2))+\".\"+STR(nYear,4))

*-- SQL kode
SELECT * FROM <table> where <datofelt> >= ?dPrevdate
Avatar billede rashid Praktikant
01. november 2001 - 15:13 #9
Tak for hjælpen. Så er jeg ikke den eneste der er foxpro-bruger :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester