Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zaprogramowanie kwerendy
mateow
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 2.08.2007

Ostrzeżenie: (0%)
-----


Witam,
Jest to mój pierwszy post i zarazem pytanie. Opisze pokrótce o co chodzi.

Borykam się z wyrzuceniem z bazy informacji na temat zamkniętych akt. Baza składa się z archiwum danych na temat raportów i sprawozdań z lat 1996-2006 do których są przypisane sygnatury ile czasu należy je przechowywać np. B5, B6, B10, B50...itd. co oznaczają że należy przechowywać je 5, 6, 10, 50 lat. I teraz tak mam dokument zapisany z datą 31.12.2002 i kat. Akt B5 i taki powinien mi przenieść do tabeli ale jeżeli jest tak zapisana data to przenosi mi też dokumenty z datą 31.12.2006 poniżej kod z programu. Wiem że ta funkcja działa na datach zapisanych w sposób yyyy.mm.dd a czy da się by działało na dd.mm.yyyy.

SELECT *
FROM ARCHIWUM
WHERE (
(ARCHIWUM.[KAT AKT] Is Not Null)
AND
(ARCHIWUM.[DATY SKRAJNE] Is Not Null)
AND
(ARCHIWUM.[DATA ZNISZCENIA] Is Null)
AND
(
( ([KAT AKT]='B5') AND (ARCHIWUM.[DATY SKRAJNE] < CSTR(Year(Now())-5) ) )
OR
( ([KAT AKT]='B6') AND (ARCHIWUM.[DATY SKRAJNE] < CSTR(Year(Now())-6) ) )
OR
( ([KAT AKT]='B10') AND (ARCHIWUM.[DATY SKRAJNE] < CSTR(Year(Now())-10) ) )
OR
( ([KAT AKT]='B50') AND (ARCHIWUM.[DATY SKRAJNE] < CSTR(Year(Now())-50) ) )
)
);

Dzięki za odpowiedź
Go to the top of the page
+Quote Post
Cezar708
post
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


myśle, że po protu możesz przerobić daty na ten format, jakiego potrzebujesz

np:
  1. <?php
  2. // zamiana z fomatu dd.mm.yyyy na yyyy.mm.dd
  3. $ymd = date("Y.m.d", strtotime($dmy) );
  4.  
  5. // zamiana z fomatu yyyy.mm.dd na dd.mm.yyyy
  6. $dmy = date("d.m.Y", strtotime($ydm) );
  7. ?>
Go to the top of the page
+Quote Post
mateow
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 2.08.2007

Ostrzeżenie: (0%)
-----


A jak zastosować coś takiego z automatu? Np w VB w accesie lub za pomocą jakiegoś makra.

Pozdrawiam
Go to the top of the page
+Quote Post
spook
post
Post #4





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 1.12.2006
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


Spróbuj najpierw wyłuskać rok z [Daty skrajne] i wtedy sprawdź relację

Fragment kwerendy mógłby wyglądać tak:

SELECT *
FROM ARCHIWUM
WHERE (((ARCHIWUM.[Kat Akt])="B5") AND ((Year([Daty skrajne]))<=Year(Now())-5));
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 20:47