OK tamten błąd to mój błąd miałem źle wpisane daty:
Ale wyskoczyła mi jedna rzecz,
Mianowicie mam daty
pesel data_od data_do
123 2006-02-01 2006-02-28
123 2006-04-01 2006-04-25Wynik tego powinnien być 53, przy tym zapytaniu wylicza mi 51, jest to normalne bo ucina przy odejmowaniu 1 dzięń.
czyli sformułowanie powinno wyglądać
SUM( data_do - data_od ) +n
gdzie n to liczba występujących peseli czyli w rozpatrywanym przez nas przypadku 2 (jeżeli rekordów było by 43 to byla by to liczba 43).
ROZWIĄZAŁEM :
liczba
"n" to -
count(pesel)
Wszystko gra dzięki.
Jeszcze jedno pytanie mam tylko co do budowy pętli:
Chce zrobić tak że mam jeszcze jedną date data_rozw
i jeżeli data_do > data_rozw to liczy mi do daty rozw.
Możesz mi pomóc proszę bo w sql to jeszcze super nie jestem

Zrobiłem coś takiego
SELECT count(pesel),pesel, SUM( data_do - data_od)+count(pesel) IF ( data_do > data_rozw ) then SUM( data_rozw - data_od)+count(pesel) else SUM( data_do - data_od)+count(pesel)
FROM daty
GROUP BY pesel ORDER BY count(pesel) DESC;
MAM!W php (którego i tak do tego używam),
wyciągnołem sobie najpierw wartości data_do i data_rozw
tam zbudowałem pętle if
poczym wynik podstawiam dopiero do selecta gdzie wygląda to tak:
.... SUM("$data" - data_od) + count(pesel)...
Proszę nie zamykajcie jeszcze tego tematu bo może pojawi się coś kolejnego z czym nie będe wstanie sobie poradzić.