Zliczanie unikalnych rekordów

0

Mam tabelę w której przechowuje badania, każde z badań jest opisane peselem pacjenta. Każdy pacjent może mieć kilka badań. Wykorzystując pole pesel chciałbym podliczyć liczbę unikalnych pacjentów i nie mam pojęcia jak sformułować ten warunek niepowtarzalności/jakiej funkcji SQL użyć.

Proszę o jakieś rady ;)

0
SELECT DISTINCT b.Pesel
FROM Badania b;
0

Czyli pacjent bez peselu nie będzie obsłużony? Jakiś nierzeczywisty ten system.

0
somekind napisał(a)

Czyli pacjent bez peselu nie będzie obsłużony? Jakiś nierzeczywisty ten system.

jaka służba zdrowia i zus, taki system...
raczej nie będzie, i tak będzie musiał donieść jakieś ubezpieczenie, po refundacje z nfz chociażby, chyba pesel jest konieczny. (ale może mylę się.)

0
Kai napisał(a)

jaka służba zdrowia i zus, taki system...
raczej nie będzie, i tak będzie musiał donieść jakieś ubezpieczenie, po refundacje z nfz chociażby, chyba pesel jest konieczny. (ale może mylę się.)

Mógłbyś nie wtryniać filozofii na temat instytucji o których nie masz pojęcia, tylko skupić się na meritum?
Po pierwsze, to, że nie każdy człowiek, który trafi do przychodni ma PESEL - to akurat pikuś.
Po drugie PESEL nie jest jednoznaczny.
Po trzecie i najważniejsze - klucz główny powinien być sztuczny, bo inaczej można sobie tylko życie utrudnić.

0
somekind napisał(a)

Po drugie PESEL nie jest jednoznaczny.

yyyyy O_o

Numer PESEL
Każdy wpis w rejestrze jest określany unikatowym symbolem jednoznacznie identyfikującym osobę fizyczną.
Numer PESEL jest to 11-cyfrowy, stały symbol numeryczny, **jednoznacznie **identyfikujący określoną osobę fizyczną.

Źródło wiki.

Pozdrawiam

0

Cześć,

Dzięki za podpowiedź, poszukałem trochę od DISTINC i zrobiłem to tak:

$sql_count10= "SELECT COUNT(DISTINCT PESEL) FROM badania";
$sql_result_count10 = mysql_query($sql_count10, $connection) or die ("Nie mozna pobrac rekordow");
$count10 = mysql_result($sql_result_count2,0,"count(id)");

Co do funkcjonalności. To jest to skrypt, który dodaje badania radiologiczne ze stanowiska radiologicznego. Zakładam że prześwietlenie można zrobić po ewentualnej rejestracji w przychodni gdzie musimy pokazać chociaż dowód osobisty. PESEL określa jednoznacznie osobę i każdy ma inny więc wykorzystanie tego do zliczenia pacjentów wydawało mi się całkiem sensowne.

Jeszcze raz dziękuję za pomoc i pozdrawiam :)

edit: jednak zauważyłem błąd już tutaj i poprawiony w skrypcie nie działa :D

edit2: teraz ok

$sql_count10= "SELECT COUNT(DISTINCT PESEL) FROM badania";
$sql_result_count10 = mysql_query($sql_count10, $connection) or die ("Nie mozna pobrac rekordow");
$count10 = mysql_result($sql_result_count10,0,"COUNT(DISTINCT PESEL)");
0

@madmike

Generalnie te zapytanie do bazy jest dla celów statystycznych więc możemy założyć że w 95% przypadków będziemy mieli ten PESEL i określimy jak wielu pacjentów przeszło badanie radiologiczne.

Nie mniej jednak masz rację, w takim razie mogę zostawić pole PESEL w formularzu wolne od walidacji a jak już będziemy mieć ten PESEL to go wprowadzimy. Jest to projekt na zaliczenie na studiach więc tu chodzi raczej o funkcjonalność zapytań do SQLa i jego znajomość.

Pozdrawiam

0
madmike napisał(a)

Moja wypowiedź była do celów edukacyjnych :) W normalnej sytuacji musisz przewidzieć różne 'dziwne' rzeczy i nietypowe sytuacje... :>

Chciałem nie do końca się zgodzić z przewidywaniem różnych dziwnych rzeczy. Moim zdaniem :) przewidywać trzeba na etapie projektowania kiedy to określamy co tak naprawdę aplikacja ma robić. Powinna ona być dostosowana dokładnie do tego czego oczekuje osoba zlecająca nam wykonanie tego. Twoja w tym głowa, żeby dopytać się o wszelkie 'dziwne' jak to nazwałeś sytuacje. Jest to dobry moment na rozwianie wątpliwości jeżeli chodzi np. o ten nieszczęsny pesel.

madmike napisał(a)

Mała uwaga co do 95%, mam przed sobą dane konwertowane do nowego programu. Tu też pesel powinien być podstawą do wprowadzania danych, pomimo to w ponad 40% danych nie nie wprowadzono go z jakichś powodów.

I właśnie o to tu chodzi. Z własnego doświadczenia wiem, że jeżeli pozostawi się człowiekowi wolność wyboru to tak to się kończy. W sytuacji kiedy programista zadbałby o to, żeby to pole było obowiązkowe w swoich danych nie zaobserwował byś tego problemu. Ale jak już zauważyłem wszystko zależy od specyfikacji. W powyższym przykładzie faktycznie obowiązkowy pesel wydaje się być nie najlepszym pomysłem.

Pozdrawiam

0
flogum napisał(a)

Numer PESEL
Każdy wpis w rejestrze jest określany unikatowym symbolem jednoznacznie identyfikującym osobę fizyczną.
Numer PESEL jest to 11-cyfrowy, stały symbol numeryczny, **jednoznacznie **identyfikujący określoną osobę fizyczną.

Źródło wiki.

Pozdrawiam

Cieszę się, że potrafisz kopiować z Wikipedii. Wstawiłbym nawet oklaski, ale nie mogę znaleźć takiej emotki.

dargod88 napisał(a)

PESEL określa jednoznacznie osobę i każdy ma inny

NIEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE

To, że większość osób ma różne numery PESEL, nie znaczy, że każdy ma inny. To, że w zamysłach twórców tego systemu numery miały być jednoznaczne i unikalne, nie znaczy, że tak jest.

Sugeruję Wam obu wycieczkę po telekomach, bankach i firmach ubezpieczeniowych z pytaniem jak to wygląda w praktyce, co oni sadzą o unikalności PESELa i czy mają na niego unique w bazach.

0
somekind napisał(a)

Cieszę się, że potrafisz kopiować z Wikipedii. Wstawiłbym nawet oklaski, ale nie mogę znaleźć takiej emotki.

A ja uwielbiam ludzi, którzy uważają, że zawsze mają rację. Nie podoba ci się wiki masz tu http://www.mswia.gov.pl. Jeżeli miałbyś nadany taki sam pesel oznaczało by to, że masz nadany błędny pesel. W ogóle jak sobie wyobrażasz to, że można nadać 2 identyczne pesele bo do końca nie czaję. A i jeszcze w takim razie odpowiedz mi po co został wprowadzony pesel i jakie ma zadanie jeżeli uważasz, że mogą być takie same. Czy nie uważasz, że mijało by się to z sensem istnienia tego nr?

0
flogum napisał(a)

Jeżeli miałbyś nadany taki sam pesel oznaczało by to, że masz nadany błędny pesel.

Thank you, Captain Obvious!

Przeszedłeś się już po tych firmach, czy jeszcze nie?
Bo jak nie, to nie mamy o czym gadać Panie Teoretyczny Mądralo, wszakże zawsze wiesz najlepiej, a Twa teoretyczna wiedza więcej znaczy niż rzeczywiste problemy występujące przy korzystaniu z prawdziwych systemów informatycznych w firmach, które mają ogromne bazy danych swoich klientów. ;]

0

@flogum

Drogi kolego - somekind ma stuprocentową rację w tym co mówi - z tego co się orientuję, kiedyś było tak, że pesel był nadawany z poziomu województwa bez on-line'owej synchronizacji na poziomie kraju...

0

Chyba powinna być osobna tabelka nadrzędna "pacjenci" i z niej można policzyć pacjentów. Jednak pesel nie może być wymagany, bo on może być tylko polskim wymysłem i jak pacjenta zagranicznego policzyć? Oni też mogą korzystać z usług medycznych albo mieszkając tu na stałe lub kilka lat, albo mając wypadki na wycieczkach.

0

Dobra dobra już zwracam honor. Pesel nie jest unikalny. Przyznaję się do błędu.

Pozdrawiam

PS. Tylko proszę bez postów w stylu ja jestem mądry ty jesteś głupi bo jest to bardzo irytujące. :p

1 użytkowników online, w tym zalogowanych: 0, gości: 1