Zadanie 1.

Wyznacz id klienta, który złożył ostatnie zamówienie (najnowsze). Zadanie rozwiąż na dwa różne sposoby.

Baza: Northwind, Tabela: dbo.Orders, Kolumny: CustomerID, OrderID, Wynik: 1 row

s1

Rozwiązanie

1) z użyciem funkcji OFFSET-FETCH, ewentualnie TOP:

SELECT CustomerID, OrderID
FROM dbo.Orders
ORDER BY OrderID DESC
OFFSET 0 ROWS FETCH NEXT 1 ROW ONLY;

2) z użyciem podzapytania:

SELECT CustomerID, OrderID
FROM dbo.Orders
WHERE OrderID = ( SELECT Max(OrderID) FROM dbo.Orders );

[collapse]
  • Magdalena Łaguń

    Źle skonstruowane pytanie. Nie ma jednego klienta, który złożył ostatnie zamówienie, ponieważ są cztery zamówienia z tą samą datą dla czterech różnych klientów. Poza tym, wydaje mi się, że budowa zapytania bazującego na zwiększającej się wartości OrderID jest trochę mało uniwersalne.

    • Alexandretta

      Dlaczego źle skonstruowane? To, że jest kilka zamówień z tą samą datą nas nie interesuje, bo my chcemy tylko to ostatnie, czyli właśnie z największym OrderID.