Skocz do zawartości

MySQL - sumowanie w osobnej kolumnie


cody100

Rekomendowane odpowiedzi

Witam

Kombinowałem na kilka sposobów, niestety za każdym razem wyrzuca mi błąd.

Chciałbym uzyskać w jednej z kolumn sumowanie wartości wyrzuconej kilka kolumn wcześniej, tj. tak jak poniżej

https://pctr.pl/obrazek/tabelahgh.png.html

Powiedzmy, że obecnie kwerenda wygląda jak poniżej (bez ostatniej z kolumn)

SELECT

Czas.tydzien_numer AS 'Tydzień (Nr)',

Produkt.nazwa AS 'Produkt',

SUM(Sprzedaz.ilosc) AS 'Ilość sprzedana',

Sprzedaz.sklep,

FROM

Czas,

Produkt,

Sprzedaz

WHERE

Czas.rok = 2011

AND Czas.tydzien_numer>25

AND Sprzedaz.sklep IN ('A', 'B')

GROUP BY

Czas.tydzien_numer,

Produkt.nazwa,

Sprzedaz.ilosc,

Sprzedaz.sklep

Przydałoby się coś w deseń COUNT tylko z sumą.

Czy znajdzie się wybawca?

Odnośnik do komentarza
Udostępnij na innych stronach

Przydałoby się coś w deseń COUNT tylko z sumą.
Zastanów się co chcesz sumować o to co piszesz nie ma sensu :wacko:

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Rozumiem, że chcesz sumować ilość sprzedanych produktów w danym tygodniu w danym sklepie ?

Zamiast gimnastykować się z jednym zapytaniem SQL może spróbuj o ile masz możliwość:

1) Zrobić jakąś procedurę w PHP lub innym języku która serią pytań dokona analizy

albo

2) Zmień strukturę tabel na taką, żeby łatwiej to było zrobić jednym zapytaniem - możesz użyć np. zdarzeń, czyli w momencie sprzedaży zwiększać licznik sprzedaży dla danego tygodnia i sklepu

Odnośnik do komentarza
Udostępnij na innych stronach

Niestety powyżej jest tylko drobny wycinek całej kwerendy. Końcowa wersja ma być wyłącznie do odświeżenia dla osoby która nie zna się na budowaniu raportów.

Prosto rzecz ujmując chodzi o to by w kolumnie o nazwie "Suma ilości" raport zwracał liczbę sprzedanego produktu w danym tygodniu we wszystkich sklepach.

Być może jest to prosta sprawa ale ni hu hu nie mogę na to wpaść.

Odnośnik do komentarza
Udostępnij na innych stronach

Zainteresuj się podapytaniami

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

dodaj na końcu

WITH ROLLUP

to generuje podsumowanie...

i prawdopodobnie z GROUP BY też będziesz musiał poeksperymentować (tzn. być może zmienić pola)

Zainteresuj się podapytaniami

Najwolniejszy i najbardziej niezoptymalizowany typ kwerendy SQL. Już lepiej to posumować w czystym PHP bo inaczej to się bez optymalizacji wykonuje tak, że pierwsze jest generowana zewnętrzna tabela a potem się wykonują podzapytania tyle razy ile jest wierszy w tabeli zewn.

Odnośnik do komentarza
Udostępnij na innych stronach

@Najwolniejszy i najbardziej niezoptymalizowany typ kwerendy SQL

Podzapytanie jest jak najbardziej prawidłowym sposobem uzyskania danych z bazy zwłaszcza przy generowaniu raportów które nie wykonują się dziesiątki razy na sekundę. Wiec wydajność w tym wypadku nie ma strategicznego znaczenia.

-------

Przykład dla tabeli z 4135 userami

SELECT U.`uid`, U.`nick` FROM UserKonto U; // czas ~ 0,043 sek

Tabela UserZdjecia ma 79,670 rekordów

SELECT U.`uid`, U.`nick`,(SELECT COUNT(*) FROM UserZdjecia UZ WHERE UZ.`id_usera` = U.uid) AS ilezdjec FROM UserKonto U; // ~ 0,063 sek

wiec dla tych tabel zapytanie z podzapytaniem jest o ~0,02 sekundy wolniejsze :) .

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności