Poprawne zapytanie

CC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

Może przez zmęczenie ale nie rozumiem czemu zapytanie zwraca mi zwielokrotnione wyniki gdy dodaję niepotrzebnie ordersdetails

Poprawne zapytanie

Kopiuj
Select  Department.Name, Orders.OrderNumber, Orders.OrderDate,DATENAME(WEEKDAY,OrderDate) as 'Dzień', 
UPPER(SUBSTRING(FirstName,1,3) + SUBSTRING(LastName,1,3)) as 'kod pracownika'
from Orders inner join Employee on Employee.Id = Orders.EmployeeId
inner join Department on Employee.DepartmentId = Department.Id
where Department.Name='IT' Order by Orders.OrderDate

Niepoprawne zapytanie

Kopiuj

Select  Department.Name, Orders.OrderNumber, Orders.OrderDate,DATENAME(WEEKDAY,OrderDate) as 'Dzień', 
UPPER(SUBSTRING(FirstName,1,3) + SUBSTRING(LastName,1,3)) as 'kod pracownika'
from Orders inner join OrderDetails on Orders.Id = OrderDetails.OrderId inner join Employee on Employee.Id = Orders.EmployeeId
inner join Department on Employee.DepartmentId = Department.Id
where Department.Name='IT' Order by Orders.OrderDate
YA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2386
2

Prawdopodobnie OrderDetails ma więcej niż jedną pozycję per Order i stąd biorą się te zwielokrotnienia.

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
2

Ponieważ dla każdej krotki z Orders zostanie znaleziona krotka z OrderDetails i każda taka para krotek znajdzie się w relacji wynikowej.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.