Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak to zsumować ?
Forum PHP.pl > Forum > Bazy danych > MySQL
Eek-A-Mouse
Jak zsumować ceny z tabel : owoc1, owoc2 i warzywo, żeby automatycznie wyświetlały sume w tabeli "koszyk" po wybraniu odpowiednich danych np.

Żeby po wybraniu : arbuz + mandarynka + ziemniak w tabeli "koszyk" w
rekordzie "cena" wyskakiwało 110 (11+33+66) ?



owoc1

| ID_owocu1 | owoc1 | cena |
-------------------------------------------
| 1 | arbuz | 11 |
| 2 | pomarańcza | 22 |

owoc2

| ID_owocu2 | owoc2 | cena |
--------------------------------------------
| 1 | mandarynka | 33 |
| 2 | jabłko | 44 |

warzywo

| ID_warzywa | warzywo | cena |
--------------------------------------------
| 1 | pomidor | 55 |
| 2 | ziemniak | 66 |
Koszyk

| ID_koszyka | owoc1 | owoc2 | warzywo | cena |
-----------------------------------------------------------
____________"wybór" "wybór" "wybór" questionmark.gifquestionmark.gifquestionmark.gif

Pytanie wszechmiar głupie, ale odpowiedź byłaby bardzo mile widziana.
SongoQ
  1. SELECT SUM(cena)
  2. FROM ( SELECT cena
  3. FROM tabela1 UNION
  4. SELECT cena
  5. FROM tabela2 UNION
  6. SELECT cena
  7. FROM tabela3 )


Mam nadzieje ze ten przyklad Ci wystarczy
nospor
ja troche nie na temat, ale jak widze takie struktury jak ta to aż w sercu ściska.
Pokazales nam tu 3 tabele. One są identyczne, wiec na grzyba je rozbijac na 3? Zrob jedną, dodaj dodatkowe pole typ i po sprawie

Kod
warzywo_owoc :)
id | nazwa | cena | typ

gdzie typ przyjmowac moze wartosci:
1 - owoc 1
2 - owoc 2
3 - warzywo.

nawet bym sie zastanowil na 1 i 2 bo po co to rozbijac na dwa owoce?
SongoQ
No tez mi sie to dziwne wydalo. Ale staralem sie odpowiedziec na pytanie odnosnie takiego schematu bazy.
Eek-A-Mouse
Po pierwsze przykład jest taki (niezależnie od tego jak głupi wam się wydaje) dlatego, że taki został mi podany i żadnych skrót, ułatwień i udziwnień nie można zastosować.
Po drugie odpowiedź napisana pzez SongoQ nie pomogła (albo ja niepotrafiłem jej poprawie odczytać) uwierzcie mi : Ja + SQL = porażka, dlatego bardzo mi zależny na odpowiedzi, którą można by poprostu skopiować i wkleić do programu tak żeby zadziałało łącznie ze wszystkimi spacjami, przecinkami, dwukropkami itd. i oczywiście poprawnym oznaczeniem tabel z których pobierane są dane czyli : owoc1, owoc2 i warzywo a nie tabela1, tabela2 i tabela3

Dla kogoś kto ma w miare podstawowe pojęcie o SQL powinno to być proste, dlatego czekam na kogoś kto się zlituje i mi to wyośli smile.gif
SongoQ
Mowisz, masz.
Zeby zadzialalo to co napisalem musisz miec MySQLa z mozliwosci podzapytan (podselectow) czyli z tego co pamietam 4.1.x

Zapytanie, ktore da CI taki rezultat jaki oczekujesz

  1. SELECT ID_koszyka, owoc1.owoc1, owoc2.owoc2 warzywo.warzywo, (owoc1.cena + owoc2.cena + warzywo.cena) AS cena
  2. FROM koszyk, owoc1, owoc2, warzywo
  3. WHERE koszyk.owoc1_id = owoc1.ID_owocu1 AND koszyk.owoc2_id = owoc2.ID_owocu2 AND koszyk.warzywo_id = warzywo.ID_warzywa AND koszyk.id


W tabeli koszyk masz id owoc1, owoc2, warzywo. O takie zapytanie Ci chodzilo. Bo z tresci tak zrozumialem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.