Autor Wątek: [SQL] Zestawienia miesięczne zamówień  (Przeczytany 2428 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Tomplus

  • Nowy użytkownik
  • *
  • Wiadomości: 5
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT
[SQL] Zestawienia miesięczne zamówień
« dnia: Czerwiec 06, 2017, 09:10:02 »
Witam,

Zacznę od tego że moje doświadczenia z SQLem ograniczają się do poziomu MySQL i na ów SQL radzę sobie bardzo dobrze. Jednak z MS SQL już nie, dlatego proszę o pomoc w rozwiązaniu mojego problemu.

Komunikat jaki się pokazuje to:
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;

Zapytanie SQL zostało poprawione.
« Ostatnia zmiana: Czerwiec 06, 2017, 12:43:27 wysłana przez Tomplus »

Offline birds22

  • Ekspert
  • *****
  • Wiadomości: 9211
  • Reputacja +1304/-21
  • Wersja programu: Najnowsza
Odp: [SQL] Zestawienia miesięczne zamówień
« Odpowiedź #1 dnia: Czerwiec 06, 2017, 09:51:32 »
Po pierwsze - zdejmij apostrofy  z nazw kolumn (w aliasach może sobie zostać)
Sławek, Zduńska Wola

Online candy

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 4877
  • Reputacja +172/-11
Odp: [SQL] Zestawienia miesięczne zamówień
« Odpowiedź #2 dnia: Czerwiec 06, 2017, 09:55:07 »
A jeśli nazwa ma być ze spacją pisz w nawiasach kwadratowych
SELECT
   [Nr dokumentu] = dok_NrPelny
Nie pytaj co rząd może zrobić dla Ciebie. Spytaj czy mógłby tego nie robić.

Offline Tomplus

  • Nowy użytkownik
  • *
  • Wiadomości: 5
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT
Odp: [SQL] Zestawienia miesięczne zamówień
« Odpowiedź #3 dnia: Czerwiec 06, 2017, 11:11:12 »
Dzięki za rady, zrobiłem korekty, poprawiłem kod.
Dobrze wiedzieć na przyszłość.

Acz teraz mam błąd:
Invalid column name 'miesiacRozliczeniowy'.
« Ostatnia zmiana: Czerwiec 06, 2017, 11:13:18 wysłana przez Tomplus »

Offline birds22

  • Ekspert
  • *****
  • Wiadomości: 9211
  • Reputacja +1304/-21
  • Wersja programu: Najnowsza
Odp: [SQL] Zestawienia miesięczne zamówień
« Odpowiedź #4 dnia: Czerwiec 06, 2017, 11:16:06 »
nie możesz grupowac po aliasie
Sławek, Zduńska Wola

Offline Tomplus

  • Nowy użytkownik
  • *
  • Wiadomości: 5
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT
Odp: [SQL] Zestawienia miesięczne zamówień
« Odpowiedź #5 dnia: Czerwiec 06, 2017, 12:40:24 »
Faktycznie zadziałało.
Teraz zestawienie jest poprawne.

Dziękuję.

Forum Użytkownikow Subiekt GT

Odp: [SQL] Zestawienia miesięczne zamówień
« Odpowiedź #5 dnia: Czerwiec 06, 2017, 12:40:24 »