I have problems with getting only first row of next query:
Select mar.Title MarketTitle, ololo.NUMBER, ololo.Title from Markets mar
JOIN(
Select emp.Employee_ID, emp.Market_id, ppp.Title, ppp.NUMBER from Employees emp
JOIN(
select pur.Employee_id Empl,Pro.Title Title, COUNT(pur.Product_id) NUMBER from Purchase pur
LEFT JOIN
Payments pay ON pay.Payment_ID = pur.Payment_ID AND pay.Date > DATEADD(month, -1, GETDATE())
RIGHT JOIN Products pro
ON pur.Product_id = pro.Product_ID
GROUP BY Pro.Title, pur.Employee_id) ppp ON ppp.Empl = emp.Employee_id) ololo
ON mar.Market_ID = ololo.Market_id
ORDER BY NUMBER DESC
I tried a lot of combination of inserting "limit 1", but all of them get errors. Could anyone help?
LIMIT
will not work with SQL Server
.
Use TOP 1
instead:
SELECT TOP 1 mar.Title MarketTitle, ololo.NUMBER, ololo.Title from Markets mar
JOIN(
Select emp.Employee_ID, emp.Market_id, ppp.Title, ppp.NUMBER from Employees emp
JOIN(
select pur.Employee_id Empl,Pro.Title Title, COUNT(pur.Product_id) NUMBER from Purchase pur
LEFT JOIN
Payments pay ON pay.Payment_ID = pur.Payment_ID AND pay.Date > DATEADD(month, -1, GETDATE())
RIGHT JOIN Products pro
ON pur.Product_id = pro.Product_ID
GROUP BY Pro.Title, pur.Employee_id) ppp ON ppp.Empl = emp.Employee_id) ololo
ON mar.Market_ID = ololo.Market_id
ORDER BY NUMBER DESC
or OFFSET-FETCH
with SQL Server 2012+
:
SELECT mar.Title MarketTitle, ololo.NUMBER, ololo.Title from Markets mar
JOIN(
Select emp.Employee_ID, emp.Market_id, ppp.Title, ppp.NUMBER from Employees emp
JOIN(
select pur.Employee_id Empl,Pro.Title Title, COUNT(pur.Product_id) NUMBER from Purchase pur
LEFT JOIN
Payments pay ON pay.Payment_ID = pur.Payment_ID AND pay.Date > DATEADD(month, -1, GETDATE())
RIGHT JOIN Products pro
ON pur.Product_id = pro.Product_ID
GROUP BY Pro.Title, pur.Employee_id) ppp ON ppp.Empl = emp.Employee_id) ololo
ON mar.Market_ID = ololo.Market_id
ORDER BY NUMBER DESC
OFFSET 0 ROWS
FETCH FIRST 1 ROW ONLY