![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 4 Dołączył: 31.07.2006 Ostrzeżenie: (0%)
|
Witam
Pytanie w temacie może niezbyt dobrze sformułowane, ale innego pomysłu nie miałem. Przejdę jednak do sedna. Mam tabelę : produkt_id | ilosc | magazyn ---------------------------------- 1 | 2 | MAG1 1 | 3 | MAG2 1 | 4 | MAG3 2 | 1 | MAG1 2 | 1 | MAG2 2 | 2 | MAG3 3 | 8 | MAG1 3 | 1 | MAG3 W efekcie chciałbym uzyskać sumę każdego produktu z wszystkich magazynów oraz ilość przypadającą tylko na konkretny magazyn. Czyli np. dla MAG2 prod_id|suma_wszystkie_mag|ilosc_na_mag_MAG2 --------------------------------- 1 | 9 | 3 2 | 4 | 1 3 | 9 | 0 Mam nadzieję, że zrozumieliście (IMG:style_emoticons/default/winksmiley.jpg) Z góry dzięki za pomoc. |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 495 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%)
|
Dla wszystkich magazynow:
Dla konkretnego magazynu:
Ale jeszcze wazna sprawa. Jesli rzeczywiscie tak wygladaja dane, ze w kazdym rekordie masz powtarzane MAG1, MAG2, MAG3 itp. to jest to zle skonstruowana baza. W takim wypadku powinienes stworzyc tabele 'magazyny' : id, nazwa i tam wpisac wszystkie magazyny a w tej pierwszej tabeli wpisywac tylko id danego magazynu. Ten post edytował sadistic_son 21.10.2010, 15:24:38 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 4 Dołączył: 31.07.2006 Ostrzeżenie: (0%)
|
Dzięki za odpowiedź ale...
1) W dwóch zapytaniach nie mam problemu, żeby to zrobić, ale myślałem, że może da się to zrobić w jednym 2) I tak chyba nie do końca zostałem zrozumiany. Dla wszystkich magazynów zrobiłbym tak :
Dla danego magazynu wyglądałoby to :
Jak już jednak powiedziałem - podejrzewałem, że można to zrobić lepiej. Baza wygląda inaczej, ale dla uproszczenia przedstawiłem to w takiej postaci. Ten post edytował boddah85 21.10.2010, 15:50:58 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 20 Dołączył: 19.02.2010 Ostrzeżenie: (0%)
|
spróbuj wiec tak:
select a.id_product,a.magazyn, (select sum(ilosc) from magazyny where product_id=a.product_id), (select sum(ilosc) from magazyny where magazyn=a.magazyn and product_id=a.product_id) from magazyny a where magazyn=$magazyn_nr z pamieci pisze wiec jakby nie działalo to przeslij mi zrzut z bazy (IMG:style_emoticons/default/winksmiley.jpg) jakby co to pisz do mnie na gg 10652868 pozdr. p.s. ilosc na magazynie 2 chcesz 0? dla produktu 3? to wtredy tak : select a.id_produkt, (select sum(ilosc) from magazyny where id_produkt=a.id_produkt), coalesce((select sum(ilosc) from magazyny where magazyn_nr='$mag2' and id_produkt=a.id_produkt),0) from magazyny a group by id_produkt order by 1 Ten post edytował poli25 22.10.2010, 07:28:02 |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 4 Dołączył: 31.07.2006 Ostrzeżenie: (0%)
|
Twoja pierwsza podpowiedź już mnie naprowadziła na rozwiązanie. Serdeczne dzięki (IMG:style_emoticons/default/smile.gif)
|
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 13:49 |