Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MSSQL] Problem z grupowaniem
aras785
post 10.05.2014, 22:49:51
Post #1





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Cześć. Mam problem z zapytaniami ms sql:


  1. SELECT tw_Id, tw_Nazwa, tw_Symbol, SUM(st_Stan) FROM tw__Towar LEFT JOIN tw_Stan ON tw__Towar.tw_Id=tw_Stan.st_TowId WHERE tw_Id=6 GROUP BY tw_Id


I wywala błąd:

Kod
Msg 8120, Level 16, State 1, Line 1
Column 'tw__Towar.tw_Nazwa' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.


Chcę wyrzucić towar o ID = 6 i policzyć jego STAN z drugiej tabeli - gdzie występują dwa rekordy o tym ID...

Nawet gdy dam zapytanie:

  1. SELECT tw_Id, tw_Nazwa, tw_Symbol FROM tw__Towar WHERE tw_Id=6 GROUP BY tw_Id


I wywala to samo... mimo, że tutaj brak jakiś nie jasności... Proszę was o pomoc.

Dziękuje i pozdrawiam
Go to the top of the page
+Quote Post
mmmmmmm
post 10.05.2014, 23:34:27
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


Komunikat wyraźnie mowi:
Cytat
Column 'tw__Towar.tw_Nazwa' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

Kolumna tw_Nazwa jest na liście pól w SELECT i nie zawiera funkcji agregującej, ani nie jest w GROUP BY. (a powinno być)
Czyli:
  1. SELECT tw_Id, tw_Nazwa, tw_Symbol, SUM(st_Stan) FROM tw__Towar LEFT JOIN tw_Stan ON tw__Towar.tw_Id=tw_Stan.st_TowId WHERE tw_Id=6 GROUP BY tw_Id, tw_Nazwa, tw_Symbol
Go to the top of the page
+Quote Post
aras785
post 11.05.2014, 09:26:00
Post #3





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Dziękuje!:)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 9.05.2024 - 04:18