Drukowana wersja tematu
Forum PHP.pl _ Microsoft SQL Server / MSDE _ Łączenie 2 tabel i podliczenie
Napisany przez: honciv 28.12.2017, 11:21:03
Witam serdecznie,
jestem początkujący i zmagam się z takim oto zadaniem:
z tabel, ze strony:
https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all
muszę wydobyć i pokazać ilu i jakich klientów obsługiwała Nancy?
z góry dziękuje za pomoc
Napisany przez: 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
Napisany przez: mmmmmmm 29.12.2017, 08:15:05
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
Napisany przez: honciv 29.12.2017, 09:41:51
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
Cytat(mmmmmmm @ 29.12.2017, 08:15:05 )
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
Napisany przez: Neutral 29.12.2017, 23:09:03
SELECT count(*) FROM posts WHERE posts.user_id = 'Nancy' GROUP BY posts.user_id;
Coś takiego chyba powinieneś napisać.
Napisany przez: mmmmmmm 29.12.2017, 23:12:58
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
Napisany przez: honciv 4.01.2018, 11:26:53
Cytat(Neutral @ 29.12.2017, 23:09:03 )
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ę
Napisany przez: 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;
Napisany przez: honciv 4.01.2018, 11:44:30
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
Napisany przez: nospor 4.01.2018, 11:56:52
A "nie dziala" objawia sie czym?
Napisany przez: honciv 4.01.2018, 12:27:53
po wpisaniu kodu od Ciebie nie wyskakuje m żaden wynik
Sorry za mój brak wiedzy
Napisany przez: Toshikatsu 4.01.2018, 12:39:36
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ć".
Napisany przez: mmmmmmm 4.01.2018, 12:53:29
Przecież on W OGÓLE nie ma takiej tabeli jak posts
Napisany przez: nospor 4.01.2018, 13:40:06
@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?
Napisany przez: honciv 4.01.2018, 14:06:59
nie rozumiem
nic nie zmieniałem
Napisany przez: nospor 4.01.2018, 14:12:13
Tego tez nie rozumiesz
Cytat
"Nie działa" "Nie wyskakuje" to mało dokładne informacje.
Najlepiej by było jakbyś pokazał co robisz
?
Napisany przez: 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:
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
Napisany przez: honciv 5.01.2018, 09:09:13
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:
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
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
Miłego dnia
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)