Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Вземете брой за множество полета, като използвате групиране по в SQL

select data.category, cl.combovalue as esilocation, cd.combovalue as esidispensary,
    year(date) as year, month(date) as month,
    sum(data.joins) as [Joining Count], sum(data.terms) as [Termination Count]
from (
    select category, esilocation, esidispensary, dateofjoining as date,
           1 as joins, 0 as terms
    from dbo.employeedetail
    where dateofjoining is not null
    union all
    select category, esilocation, esidispensary, terminationdate as date,
           0 as joins, 1 as terms
    from dbo.employeedetail
    where terminationdate is not null
) data
left join dbo.combovalues cl on cl.id = data.esilocation
left join dbo.combovalues cd on cd.id = data.esidispensary
where category in ( 1, 2 ) 
and date >= '2014-01-01' 
and date <= '2014-12-31'
group by data.category, cl.combovalue, cd.combovalue, year(date), month(date)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да се справим с имената на колони в SQL, които изглеждат като SQL ключови думи?

  2. Обединете много колони в една, като запазите сходството и замените разликите

  3. Получаване на ID на последния вмъкнат запис - Access DAO, ODBC, поле за самоличност на SQL Server 2008

  4. SQL Server – мръсни четения плюсове и минуси

  5. SQL Server principal dbo не съществува,