Autor | Zpráva | ||
---|---|---|---|
Enko Profil |
#1 · Zasláno: 28. 11. 2016, 12:10:34
Ahoj,
hledám řešení jak vytvořit MySQL dotaz na následující logiku. Mám data v tabulce. Každý záznam má svůj datum vložení. Ve vedlejší tabulce mám data "měsíční uzávěrky", kde každý měsíc má jeden den "uzávěrku" (standartně 25. den každého měsíce, ale může se měnit). A chci vytvořit dotaz, který mi bude zobrazovat data jen z aktuálního období na základě uzávěrky. Například teď je 28. 11. 2016 a aktuální období na základě nastavených uzávěrek je od 26-10-2016 00:00:00 do 29-11-2016 23:59:59. Tudíž chci zobrazit jen data z aktuálního období, které je v konkrétní uzávěrce. Děkuji za každou pomoc. |
||
TomášK Profil |
A co konkrétně je problém? Zjistíš datum minulé uzávěrky
SELECT MAX(datum) FROM uzaverky WHERE datum < NOW() , podobně datum příští uzávěrky, a pak ty dotazy použiješ v podmínce BETWEEN datum > (datum minulé uzávěrky) AND datum < (datum příští uzávěrky)
|
||
Enko Profil |
#3 · Zasláno: 28. 11. 2016, 13:29:25
TomášK:
Jop, díky za postrčení správným směrem. Už to mám: SELECT * FROM zmeny WHERE ( kdy_zadal > (SELECT Max(uzaverka_mesice.uzaverka) FROM uzaverka_mesice WHERE uzaverka_mesice.uzaverka < Now()) AND kdy_zadal < (SELECT Min(uzaverka_mesice.uzaverka) FROM uzaverka_mesice WHERE uzaverka_mesice.uzaverka > Now()) ) AND smazano = 0 ORDER BY id DESC |
||
Kajman Profil |
#4 · Zasláno: 28. 11. 2016, 15:38:41
Enko:
Právě v jedné z podmínek by mělo být povolené i rovnítko. To platí pro omezení na kdy_zadal (doklad s datumem uzávěrky by nikde nebyl) i pro Now (ve chvíli uzávěrky by se počítalo dvouměsíční období). Osobně bych to z důvodu přehlednosti necpal do jednoho dotazu. |
||
Enko Profil |
#5 · Zasláno: 29. 11. 2016, 11:54:53
Kajman:
Ano, s tím rovnítkem máš pravdu. Toto mě nenapadlo. Moc děkuju, doplním. |
||
Časová prodleva: 8 let
|
0