![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 231 Pomógł: 1 Dołączył: 22.04.2007 Skąd: Rypin Ostrzeżenie: (0%) ![]() ![]() |
witam. potrzebuje waszej pomocy. mam 2 tabele przykladowo
TabelaA id marka_auta TabelaB id id_tabeliA model_auta dostępność przykladowo. wrzucam do tabeliA 1, opel 2, VW do tabeliB 1, 1, corsa, dostępny 2, 1, insignia, zajęty i teraz chce zliczyć wszystkie marki aut(tabela A) pod warunkiem ze z (tabeliB) wszystkie modele tego auta są dostępne czyli jeśli mam markę opel. w niej np 2 dostępne modele to jeśli wszystkie są dostępne to zliczenie kategorii opla traktowane jest jako 1. a jeśli jakiś model tego auta niedostępny wtedy cala marka jest 0(do sumowania). trochę to bez sensu ale tak będzie prościej to przedstawić chyba (IMG:style_emoticons/default/wink.gif) albo bardziej obrazkowo (IMG:style_emoticons/default/wink.gif) "Mamy halę w której znajdują się skrzynie z jabłkami na sprzedaż . Jeśli chociaż jedno jabłko w danej skrzyni jest zepsute to cała skrzynia jest do wyrzucenia. Policz ilość skrzyń które uda się sprzedać" Ten post edytował djbarca 4.02.2012, 12:58:13 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jakoś tak:
Składnia postgresql, nie pamiętam czy case się tak pisało w mysql. Ten post edytował viking 4.02.2012, 14:47:24 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
W ogóle nie trzeba łączyć A, wszystko co trzeba mamy w B, przecież wystarczy policzyć różne id_tabeliA z B zamiast liczyć coś z A.
Przy indeksie na id_tabeliA będzie śmigać nawet na dużej bazie. Ten post edytował pmir13 4.02.2012, 15:46:28 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 231 Pomógł: 1 Dołączył: 22.04.2007 Skąd: Rypin Ostrzeżenie: (0%) ![]() ![]() |
pmir13 Twój sposób może i jest dobry ale w ten sposób nie mogę tego zrobić. Moze postaram sie przedstawić to tak jak wygląda w rzeczywistości:
Spotkanie klanowe , to łącznie 4 mecze miedzy użytkownikami danego klanu. Teraz, mając dostępny identyfikator klanu , który może wystąpić w tabeli `-klany_spotkania` w polu 'gosp' albo 'gość' (zakładając , ze spotkanie jest zakończone tylko wtedy , gdy wszystkie 4 mecze w danym spotkaniu maja status = 3) policzyć ile spotkań ukończył dany klan. Ten post edytował djbarca 5.02.2012, 12:28:21 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Trochę za bardzo uprościłeś przykład.
Ale teraz też dość podobnie można to policzyć, spróbuj tak:
W zależności od tego co oznaczają statusy, ile ich jest i czy może być NULL będziesz musiał zmienić linię z HAVING, na przykład jeśli możliwy jest też status=4 albo wyższy to zamiast tego byłoby:
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 231 Pomógł: 1 Dołączył: 22.04.2007 Skąd: Rypin Ostrzeżenie: (0%) ![]() ![]() |
(IMG:style_emoticons/default/smile.gif) już bliżej ale wciąż nie to.
mam dostępny identyfikator klanu a tutaj sprawdzasz w tabeli `-klany_mecze` w polach z identyfikatorami graczy danego klanu. w jaki sposób to zmienić tak żeby było sprawdzane nie w tabeli `-klany_mecze` a `-klany_spotkania`
Ten post edytował djbarca 6.02.2012, 14:38:31 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 11:00 |