USE Northwind_2020; -- 1. Podaj identyfikator najdłużej realizowanego zamówienia SELECT OrderID, datediff(DAY, OrderDate, ShippedDate) as Days FROM Orders ORDER BY Days DESC SELECT OrderID, datediff(DAY, OrderDate, ShippedDate) as Days FROM Orders WHERE datediff(DAY, OrderDate, ShippedDate) = (SELECT max(datediff(DAY, OrderDate, ShippedDate)) FROM Orders) -- 2. Podać klientów, którzy mieli przerwę w zakupach dłuższą niż 2 miesiące SELECT OrderID, CustomerID, OrderDate, ( SELECT TOP 1 OrderDate FROM Orders WHERE OrderID > o.OrderID AND CustomerID = o.CustomerID ) AS NextOrderDate, datediff(DAY, OrderDate, ( SELECT TOP 1 OrderDate FROM Orders WHERE OrderID > o.OrderID AND CustomerID = o.CustomerID )) FROM Orders AS o WHERE datediff(DAY, OrderDate, ( SELECT TOP 1 OrderDate FROM Orders WHERE OrderID > o.OrderID AND CustomerID = o.CustomerID )) > 62 -- 3. Wypisać identyfikatory tych pracowników, którzy realizowali więcej zamówień -- niż liczba zamówień zrealizowanych przez pracowników z tego samego kraju -- co spedytorzy. SELECT EmployeeID, count(OrderID) FROM Orders GROUP BY EmployeeID HAVING count(OrderID) >= all ( SELECT count(OrderID) FROM Orders INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID WHERE Country = ShipCountry GROUP BY Orders.EmployeeID ) -- 4. W firmie używającej bazy Northwind pracownicy (tabela Employees) posiadają -- adresy emial’owe. Załóżmy, że standardowo nazwa konta (część przed znakiem @) -- zbudowana jest z pierwszej litery imienia (firstname), inicjału środkowego -- (pole middlinitial) oraz pierwszych ośmiu znaków nazwiska (lastname). -- Utwórz zapytanie, które wygeneruje te nazwy email’owe. W tym zadaniu należy -- użyć funkcji łańcuchowych LOWER i SUBSTRING. SELECT FirstName, LastName, lower( concat( substring(FirstName, 1, 1), substring(LastName, 1, 8), '@northwind.com' ) ) FROM Employees -- 5. Podaj dzień w którym było najwięcej zamówień SELECT count(OrderID) AS HowMany, datename(weekday, OrderDate) AS WeekDay FROM Orders GROUP BY datename(weekday, OrderDate) ORDER BY count(OrderID) DESC -- 6. Wypisz nazwę i adres najczęściej zamawiającego klienta -- broken SELECT CompanyName, City FROM Customers WHERE CompanyName = ( SELECT CompanyName FROM Customers INNER JOIN Orders ON Orders.CustomerID = Customers.CustomerID HAVING count(OrderID) >= ALL (SELECT count(OrderID) FROM Orders GROUP BY CustomerID) ) SELECT count(OrderID), Orders.CustomerID FROM Orders INNER JOIN Customers ON Customers.CustomerID = Orders.CustomerID GROUP BY Orders.CustomerID -- 7. Wskazać pracownika który obsługiwał klienta, którego nie obsługiwał nikt inny -- 8. Wypisz dane pracownika którego nazwisko jest najdłuższe. Skorzystaj z funkcji LEN SELECT LastName FROM Employees WHERE len(LastName) = (SELECT max(len(LastName)) FROM Employees)