Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Łączenie 2 tabel i podliczenie
Forum PHP.pl > Forum > Bazy danych > Microsoft SQL Server / MSDE
honciv
Witam serdecznie,

jestem początkujący i zmagam się z takim oto zadaniem:

z tabel, ze strony:
https://www.w3schools.com/sql/trysql.asp?fi...ysql_select_all

muszę wydobyć i pokazać ilu i jakich klientów obsługiwała Nancy?

z góry dziękuje za pomoc smile.gif
Tomplus
Kod
SELECT c.CustomerName, o.*, e.FirstName Employee FROM [Orders] o INNER JOIN [Customers] c ON c.CustomerID = o.CustomerID LEFT JOIN [Employees] e ON e.EmployeeID = 1
mmmmmmm
  1. SELECT c.CustomerName, o.*, e.FirstName Employee FROM [Orders] o INNER JOIN [Customers] c ON c.CustomerID = o.CustomerID INNER JOIN [Employees] e ON e.EmployeeID = o.EmployeeID WHERE e.EmployeeID=1
honciv
Cytat(Tomplus @ 28.12.2017, 23:12:52 ) *
Kod
SELECT c.CustomerName, o.*, e.FirstName Employee FROM [Orders] o INNER JOIN [Customers] c ON c.CustomerID = o.CustomerID LEFT JOIN [Employees] e ON e.EmployeeID = 1


ale w tej regule pojawiają mi się wszystkie EmployeeID, a nie tylko 1 sad.gif

Cytat(mmmmmmm @ 29.12.2017, 08:15:05 ) *
  1. SELECT c.CustomerName, o.*, e.FirstName Employee FROM [Orders] o INNER JOIN [Customers] c ON c.CustomerID = o.CustomerID INNER JOIN [Employees] e ON e.EmployeeID = o.EmployeeID WHERE e.EmployeeID=1


dziękuję bardzo, a czy dało by radę to podliczyć - dowiedziałem się że wynikiem mojego zapytania ma być ilość klientów obsłużonych przez Nancy
Neutral
  1. SELECT count(*) FROM posts WHERE posts.user_id = 'Nancy' GROUP BY posts.user_id;


Coś takiego chyba powinieneś napisać.
mmmmmmm
  1. SELECT Count(DISTINCT c.CustomerID) AS ilosc FROM [Orders] o INNER JOIN [Customers] c ON c.CustomerID = o.CustomerID INNER JOIN [Employees] e ON e.EmployeeID = o.EmployeeID WHERE e.EmployeeID=1
honciv
Cytat(Neutral @ 29.12.2017, 23:09:03 ) *
  1. SELECT count(*) FROM posts WHERE posts.user_id = 'Nancy' GROUP BY posts.user_id;


Coś takiego chyba powinieneś napisać.


wynik jest ok - czyli 23, a czy mogę prosić o kod z takim wynikiem, ale żeby w kodzie i wyniku oprócz liczby 23 widoczna była Nancy?

z góry dziękuję smile.gif
nospor
NIe przesadzasz z lekka? Ciezko dopisac przy SELECT kolejna kolumne, ktrora chcesz wyswietlic?

SELECT count(*), posts.user_id FROM posts WHERE posts.user_id = 'Nancy' GROUP BY posts.user_id;
honciv
Cytat(nospor @ 4.01.2018, 11:31:18 ) *
NIe przesadzasz z lekka? Ciezko dopisac przy SELECT kolejna kolumne, ktrora chcesz wyswietlic?

SELECT count(*), posts.user_id FROM posts WHERE posts.user_id = 'Nancy' GROUP BY posts.user_id;


Przepraszam, dopiero się uczę, analizuję każdą pomoc od forumowiczów - mam nadzieję że będę mógł też kiedyś pomagać.

Niestety ale podany przez Ciebie kod nie działa sad.gif
nospor
A "nie dziala" objawia sie czym?
honciv
po wpisaniu kodu od Ciebie nie wyskakuje m żaden wynik sad.gif

Sorry za mój brak wiedzy sad.gif
Toshikatsu
To nie kwestia braku wiedzy, a braku chęci wyjaśnienia problemu.
"Nie działa" "Nie wyskakuje" to mało dokładne informacje.

Najlepiej by było jakbyś pokazał co robisz, bo to co dodał nospor do zapytania nie miało prawo go "zepsuć".
mmmmmmm
Przecież on W OGÓLE nie ma takiej tabeli jak posts smile.gif
nospor
@mmmmmmm czyli sugerujesz ze kolega zamienil to zapytanie
SELECT count(*) FROM posts WHERE posts.user_id = 'Nancy' GROUP BY posts.user_id;
na zapytanie z poprawna tabela zamiast posts ale mojej wersji juz nie zamienil spowrotem na poprawna tabele? Myslisz ze zrobilby cos tak niegodziwego? wink.gif
honciv
nie rozumiem sad.gif
nic nie zmieniałem
nospor
Tego tez nie rozumiesz
Cytat
"Nie działa" "Nie wyskakuje" to mało dokładne informacje.

Najlepiej by było jakbyś pokazał co robisz

?
Toshikatsu
Nie chciałbym tutaj wszystkiego robić za kolegę, ale najwyraźniej przekopiował inny select, a inny zacytował w poście.

Generalnie to czego potrzebujesz, honciv to powinno być to:
  1. SELECT count(*), e.FirstName FROM Orders o JOIN Employees e ON o.EmployeeID = e.EmployeeID WHERE e.FirstName = "Nancy"


Aczkolwiek problem przy takich rzeczach wymagałby nieco więcej pracy własnej i chęci rozwiązania takiej sytuacji. Dobrym ćwiczeniem byłoby na pewno prześledzenie i spróbowanie wytłumaczyć samemu sobie(bądź nam w poście - a co!), co to zapytanie robi smile.gif
honciv
Cytat(Toshikatsu @ 4.01.2018, 14:28:32 ) *
Nie chciałbym tutaj wszystkiego robić za kolegę, ale najwyraźniej przekopiował inny select, a inny zacytował w poście.

Generalnie to czego potrzebujesz, honciv to powinno być to:
  1. SELECT count(*), e.FirstName FROM Orders o JOIN Employees e ON o.EmployeeID = e.EmployeeID WHERE e.FirstName = "Nancy"


Aczkolwiek problem przy takich rzeczach wymagałby nieco więcej pracy własnej i chęci rozwiązania takiej sytuacji. Dobrym ćwiczeniem byłoby na pewno prześledzenie i spróbowanie wytłumaczyć samemu sobie(bądź nam w poście - a co!), co to zapytanie robi smile.gif


Witam,
bardzo dziękuję, o to mi chodziło, w weekend siadam przy wszystkich przykładach od Was i będę rozgryzał każdy krok po kroku, bardzo dziękuję za pomoc smile.gif
Miłego dnia
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.