Poprawne zapytanie

0

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

Poprawne zapytanie

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


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
2

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

2

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1