Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak rozbić jeden rekord z jednej tabeli na kilka
kukimax
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 21.01.2011

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


Witam,
Jak napisać zapytanie do SQL aby z poniższej tabeli:
ID | data
1 | 2013-10-05
2 | 2013-11-22
3 | 2013-12-01
Powtórzyły się rekordy których data minęła 5, 15 i 20 dni licząc od wprowadzonej daty.

Przykładowo dla daty 2013-11-30 powinna wyświetlić się poniższa tabela:
ID | data | data po dodaniu
1 | 2013-10-05 | 2013-10-10
1 | 2013-10-05 | 2013-10-20
1 | 2013-10-05 | 2013-10-25
2 | 2013-11-22 | 2013-11-27

Z góry dzięki za odpowiedź.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
c1chy
post
Post #2





Grupa: Zarejestrowani
Postów: 72
Pomógł: 16
Dołączył: 21.06.2013

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


  1. SELECT `id`,`data`,DATE_ADD(`data`, INTERVAL 5 DAY) AS `data_po_dodaniu` FROM tabela
Go to the top of the page
+Quote Post
kukimax
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 21.01.2011

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


Nie o to mi chodzi.
Rekord z id 1 powtarza się 3 razy bo minęło zarówno 5, 15 i 20 dni od wprowadzanej daty, natomiast id 2 powtarza się tylko jeden raz bo ten termin miną tylko 5 dnia, a 15 i 20 jeszcze nie.
Mi zależy na tym aby id się powtórzyły , a nie dodało się 5 dni.
Go to the top of the page
+Quote Post
c1chy
post
Post #4





Grupa: Zarejestrowani
Postów: 72
Pomógł: 16
Dołączył: 21.06.2013

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


  1. SELECT * FROM daty WHERE datediff(now(), `data`) > 5
  2. UNION ALL
  3. SELECT * FROM daty WHERE datediff(now(), `data`) > 15
  4. UNION ALL
  5. SELECT * FROM daty WHERE datediff(now(), `data`) > 20


Tylko czy na pewno potrzebujesz takiej konstrukcji ?
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: 2.10.2025 - 21:15