Proszę więc o pomoc w sprawie rozwiązania problemu a zarazem wskazanie rozwiązania, abym mógł rozwiązać taki problem w innych przypadkach.
Komunikat jaki się pokazuje to:
Kod
Each GROUP BY expression must contain at least one column that is not an outer reference.
Rozumiem, że nie może być żadnej referencji zewnętrznej, ale co jeżeli chce grupować właśnie takiej kolumnie?
Celem jest zsumowanie wartosci sprzedazy, kosztów i zysków z danych miesięcy, dla dokumentu z zawartoscia INTERNET, a w przyszłości także innych.
SELECT MAX(dataZamowienia) miesiacRozliczeniowy ,COUNT(1) liczbaZamowien ,SUM(CenatowarowNETTO) WartoscSprzedazyNETTO ,SUM(kosztyNETTO) KosztySprzedazyNETTO ,SUM(zyskNETTO) ZyskSprzedazyNETTO FROM ( SELECT *, (CenatowarowNETTO - kosztyNETTO) zyskNETTO FROM ( SELECT MAX(Dok.dok_WartTwNetto) CenatowarowNETTO ,SUM(Poz.ob_Ilosc * Poz.ob_CenaMag) kosztyNETTO ,MAX(FORMAT(Dok.dok_DataMag, 'yyyy-MM')) dataZamowienia FROM dok_Pozycja Poz LEFT JOIN dok__Dokument Dok ON Poz.ob_DokHanId = Dok.dok_Id WHERE UPPER(Dok.dok_NrPelnyOryg) LIKE '%INTERNET%' AND Poz.ob_CenaMag > 0 AND Dok.dok_DataMag BETWEEN '2017-06-01 00:00:00' AND '2017-06-30 00:00:00' GROUP BY Poz.ob_DokHanId ) a ) b GROUP BY dataZamowienia;
Problem z zapytaniem został rozwiązany.
Błędem były apostrofy oraz alias dla grupowania.
Poprawiłem zapytanie, może komuś się przyda.
Do zamknięcia.