![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 26.11.2006 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Witam,
więc tak, mam dwie tabele customer i customer_group o mniej więcej takiej strukturze
I potrzebuje zmienić grupę do ktorej nalezy użytkownik gdy ilosc jego wydanych pieniedzy jest wieksza od minimalnej ilosci pieniedzy pot....( amount ) i np.
i przy takich danych chce by klient 1 zostal bez zmian klient 2 zostal przypisany do grupy 3 klient 3 zostal przypisany do grupy 1 klient 4 zostal przypisany do grupy 3 ( wybierana jest grupa o najwiekszej wartosci amount, ale taka ze bill >= amount ) i chcialem wszystko załatwić jednym zapytaniem lecz cos mi nie wychodzi :/ wymyśliłem jedynie zeby pobrac jednym zapytaniem customer_id i group_id, a pozniej poscic for i pokolei dawać zapytania z update, ale to zapytanie zawraca mi tez klientow ktorzy pozostaja bez zmian gdzie group_id = null oto moje zapytanie
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 22.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dobre zapytanie sobie wymyśliłeś
![]() Jednak udało mi się to zawrzeć w 1 zapytaniu :
Juz tlumaczę jak dziala zapytanie : zaczynajac od konca - wyciagam największą wartosc "amount" dla danego uzytkownika na podstawie wartosci "bill" ("amount" nie wieksze niz "bill"). Na podstawie tego wiem jaka jest wartosc "amount" dla grupy, do ktorej uzytkownik ma zostac przypisany. Pozniej majac juz "amount" moge wydobyc "group_id" dla tej wartosci, a te "group_id" uaktualniam dla kazdego uzytkownika. Po wykonaniu jest : customer_id group_id bill 1 2 100 2 3 200 3 1 150 4 3 200 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 21:40 |