Goran Bibic

Goran Bibic

  • 455
  • 2.9k
  • 178k

Sql group and multiple oredr by...

May 3 2018 3:11 PM
Like this...
error is Msg 156, Level 15, State 1, Line 13
Incorrect syntax near the keyword 'group'.
  1. SELECT a.radnik, isnull(convert(varchar(20), a.vrijemeodjave, 113), '') as vrijemeodjave, convert(varchar(20), b.vrijemeprijave, 113) as vrijemeprijave,  
  2. --CASE WHEN DATEPART(WEEKDAY, b.vrijemeprijave) in (1,7) then 0 else (CASE WHEN (DATEDIFF(SECOND, b.vrijemeprijave, a.vrijemeodjave) / 3600) > 8 THEN 8 ELSE(DATEDIFF(SECOND, b.vrijemeprijave, a.vrijemeodjave) / 3600) END) end AS radni_sati,  
  3. --CASE WHEN DATEPART(WEEKDAY, a.vrijemeodjave) in (1,7) then (DATEDIFF(SECOND, b.vrijemeprijave, a.vrijemeodjave) / 3600) else(case when(DATEDIFF(SECOND, b.vrijemeprijave, a.vrijemeodjave) / 3600) > 8 then ((DATEDIFF(SECOND, b.vrijemeprijave, a.vrijemeodjave) / 3600)-8) ELSE NULL END) end AS prekovremeni  
  4. SUM(cast((CASE WHEN DATEPART(WEEKDAY, 01) in (1, 7) then 0 else (CASE WHEN(DATEDIFF(SECOND, 01, 3) / 3600) > 8 THEN 8 ELSE(DATEDIFF(SECOND, 01, 3) / 3600) END) end)as float)) AS ukupno_radni_sati,  
  5. SUM(cast((CASE WHEN DATEPART(WEEKDAY, 3) in (1, 7) then(DATEDIFF(SECOND, 01, 3) / 3600) else(case when(DATEDIFF(SECOND, 01, 3) / 3600) > 8 then((DATEDIFF(SECOND, 01, 3) / 3600) - 8) ELSE NULL END) end)as float)) AS 'Ukupno rekovremeni'  
  6. FROM(SELECT radnik, vrijemeodjave, ROW_Number() OVER(Partition By IdPrijava ORDER BY vrijemeprijave) as RowNum  
  7. FROM dbo.prijava_radnika) a INNER JOIN(SELECT radnik, vrijemeprijave, (ROW_Number() OVER(Partition By IdPrijava ORDER BY vrijemeprijave) - 1) as RowNumMinusOne FROM dbo.prijava_radnika)  
  8. group by a.radnik 
 

Answers (2)