![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 0 Dołączył: 9.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam dwie tabele w bazie ( nie wypisuje wszystkich pól, tylko te co są istotne przy moim problemie): tab.a1 ID | nazwa | numer| 1 | cytryna| 1001| 2 |kiwi | 1002| 3 |banan | 1003| 4 |jabłko | 1004| itd. tab.b1 ID |nr2 | czas | atrybut| 1 | 1001| 20130105 | h| 2 | 1001 | 20130108 | r | 3 | 1001| 20130110 | h| 4 |1002 | 20130106 | h| 5 | 1002| 20130109 | h| 6 |1003 | 20130114 | r| 7 |1003 |20130115 | r| 8 |1004 |20130110 | a| Pierwsza część działa mi prawidłowo, otrzymuję wszystkie wyniki spełniające zapytanie
w wyniku otrzymuję taką tabelkę: 1.cytryna 1001 h 2.cytryna 1001 r 3.kiwi 1002 h 4.banan 1003 r 5.jabłko 1004 a Teraz chciałbym by nastapiło zliczenie wg takiego rozwiązania po atrybutach. Jeśli dana produkt ( np. cytryna ) wystepuje w dwóch wynikach z różnymi atrybutami ( h, r ) to chcę by to było zliczone jako h i by w tabeli poniżej nastepowało sumowanie po atrybutach (analogicznie sobie już pozostałe ustawienia dopasuję ) czyli w tym przypadku: atrybut h - 2 ( czyli cytryna i kiwi ) atrybut r - 1 ( czyli banan) atrybut a - 1 (czyli jabłko )
W jaki sposób można to zrobić, proszę o jakieś podpowiedzi i wskazówki. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 0 Dołączył: 9.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
No to będzie problem bo tych nazw będzie dużo.
W tym kodzie co dziś dałem, to już nie jest prosta tabela. W tabeli dawcy - są dane osobowe osób kilkadziesiąt tysięcy w tabelii oddania są informacje o oddaniach krwi jakie osoba dokonała w danym roku. Przy każdym oddaniu może być ten atrybut:h, r, p, a zliczenie ma polegać na wybraniu wszystkich osób z danego przedziału czasowego, którzy oddawali krew. Wiadomo, że można oddać kilka razy w roku, dlatego w zabytaniu chciałem pogrupować najpierw po ODDWNR czyli jest to numer, można powiedzieć ze id takiej osoby, a nastepnie pogrupować po ODDNR1 czyli po atrybucie h, r, p, a. Z takiego zapytania powinienem otrzymać np. Jan Kowalski R Jan kowalski H Jan Nowak R Piotr Malinowski A Z tej tabeli wiem, że kowalski oddawał krew z atrybutem H i R ( przynajmniej po jednym razie ), nowak oddawał tylko z atrybutem R, a malinowski z atrybutem A Założenia atrybutów są takie jak w kodzie, czyli jak ktoś oddawał np. H, R, P to ma być zliczony jako raz do H, jak ktoś tylko R, to raz do R z tych załozeń mamy: Kowalski - R i H - czyli zliczamy do H Nowak - R - zliczamy do R Malinowski A-zliczamy do A otrzymany wynik z tego przykładu powinien być taki: liczba osób z atrybutem H - 1 liczba osób z atryb. R - 1 liczba osób z atryb A- 1 Może teraz to jest jasniej, nie chciałem dokładnie tego opisywać, bo chciałem sam to zrobić, dlatego posługiwałem sie owocami jako przykładem Wstaw odpowiednie nawiasy do SQL (WHERE), bo teraz to kicha przeokrutna tam jest. Właśnie nie wiem jak powinny one być wstawione. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 20:10 |