Q

# Crosstab totals per quarter

How can I create a crosstab of labor hours worked by quarter for each employee? The labor dates are listed individually...

for each employee. How do I code this per "quarter"?

This problem has two components: grouping totals by quarter, and creating crosstab output.

Grouping totals by quarter is easy if your database system has a date function that can extract the quarter from a date. For example, in Microsoft Access, you can write

```select employeeno
, datepart("q",labordate) as quarter
, sum(laborhours)         as sumhours
from yourtable
group
by employeeno
, datepart("q",labordate)```

What if your database has no "quarter" date function? Then you could use the database's MONTH function. In order to group by quarter, we note that the quarters are given by months 1-3, 4-6, 7-9, and 10-12:

```select employeeno
, case
when month(labordate) between 1 and 3
then 1
when month(labordate) between 4 and 6
then 2
when month(labordate) between 7 and 9
then 3
else 4
end             as quarter
, sum(laborhours) as sumhours
from yourtable
group
by employeeno
, quarter```

Instead of the CASE construct, you could also do arithmetic on the month number to come up with the quarter:

```select employeeno
, cast( (month(labordate)+2) / 3
as integer )
as quarter
, ...```

The only hitch with the two above approaches is that some databases may not let you use the column alias "quarter" in the GROUP BY clause, so you would have to repeat the CASE construct or the CAST function in the GROUP BY clause.

Finally, a solution using an integers table is:

```select employeeno
, i               as quarter
, sum(laborhours) as sumhours
from integers
inner
join yourtable
on i * 3 = month(labordate)
where i between 1 and 4
group
by employeeno
, i```

The integers table is used in a similar way in Grouping output by week (24 October 2002).

But what about producing the output in a crosstab? Well, the best approach here is to use a reporting language. Microsoft Access has this built in, and it works really well.

However, if you do want to do it just with SQL, it would look like this:

```select employeeno
, sum (
case
when month(labordate) between 1 and 3
then laborhours
else 0
end )  as quarter1hours
, sum (
case
when month(labordate) between 4 and 6
then laborhours
else 0
end )  as quarter2hours
, sum (
case
when month(labordate) between 7 and 9
then laborhours
else 0
end )  as quarter3hours
, sum (
case
when month(labordate) between 10 and 12
then laborhours
else 0
end )  as quarter4hours
from yourtable
group
by employeeno```

This was last published in November 2002

## Content

Find more PRO+ content and other member only offers, here.

#### Have a question for an expert?

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

#### Start the conversation

Send me notifications when other members comment.

## SearchDataManagement

• ### With better scaling, semantic technology knocks on enterprise's door

Cambridge Semantics CTO Sean Martin says better scalability can lead to richer representations of data. Such advances are behind ...

• ### Big data management and analytics weather tumult -- with more in store

Cloud had a big impact on big data management and analytics last year. Machine learning and streaming designs will contribute to ...

• ### Embedded analytics to feel widest impact of machine learning projects

Ovum analyst Tony Baer discusses machine learning tools, IoT-driven streaming analytics and Hadoop in the cloud, all of which ...

• ### Researchers work on AI algorithms to detect fake news

A new challenge to identify fake news will test the boundaries of AI technology and offer a proving ground for innovative new ...

• ### Don't let a data-driven approach ax judgment from analytics equation

Data analytics can help improve decision-making in organizations. But human intuition and judgment need to be part of the picture...

• ### Lack of skills remains one of the biggest data science challenges

Many enterprises are struggling with the complexity of today's big data and data science ecosystem, though they recognize the ...

## SearchSAP

• ### SAP futurists name five future technology trends to plan for now

Three SAP futurists explain what future technology trends in augmented reality, blockchain, AI, robotics, and contingent labor ...

• ### Abakus acquisition beefs up SAP Hybris marketing portfolio

SAP acquires Abakus marketing measurement software for SAP Hybris marketing suite; openSAP adds new courses for S/4HANA, data ...

• ### The five best ways to manage SuccessFactors support after go-live

SuccessFactors skills are scarce in the job market, but you can manage a new system with a few organizational moves and a solid ...

## SearchSQLServer

• ### Four trends that will impact SQL Server DBAs in 2017

Flash storage adoption, cloud computing's growth, Linux's increased importance and broader big data integration are a few trends ...

• ### DATEADD and DATEDIFF SQL functions for datetime values

DATEADD and DATEDIFF SQL functions allow you to easily perform calculations, like adding a time interval from a datetime value. ...

• ### SQL Server on Linux signals Microsoft's changing development landscape

Expert Joey D'Antoni explains what SQL Server on Linux and the addition of some Enterprise Edition features to the database's ...

## TheServerSide

• ### Is JSON and XML your REST performance bottleneck?

Learn how ASCII encoding formats like JSON and REST can adversely impact server application performance compared with emerging ...

• ### Making multi-cloud deployment a reality at Netflix with Spinnaker

Learn how Netflix leveraged automation and Spinnaker to perform 4,000 multi-cloud deployments per day.

• ### The benefits of Java microservices in a Docker and DevOps world

To seasoned developers, microservices may sound like SOA by another name. But Java microservices apps delivered via Docker ...

## SearchDataCenter

• ### Use a Linux file system journal for data integrity, performance

Understand the three different file system journaling modes for Linux, as well as which mount option provides the best levels of ...

• ### Test yourself on modern data center networking architecture

Evolving business needs demand a new approach to data center networking. Keep yourself updated on SDN, VXLAN and other ...

• ### To reap the benefits of hyper-convergence, manage it right

Use a policy-based approach to manage hyper-converged infrastructure.

## SearchContentManagement

• ### Using Microsoft MyAnalytics to improve workers' time management

Microsoft MyAnalytics has been hailed as the next great thing for analyzing worker productivity. But how can employees be assured...

• ### Is the Drupal content management system right for your business?

The open source Drupal content management system offers users responsive design and WYSIWYG content and web development tools, as...

• ### Manage your content with the IBM Digital Experience WCM platform

IBM Digital Experience is a WCM platform that offers users features for creating and managing digital content that can be ...

## SearchFinancialApplications

• ### HR to face sea change in online learning software and accent on teams

Deloitte predicts far-reaching trends for HR, including innovations in learning, an expansion of artificial intelligence, and an ...

• ### Experts lack consensus on discrimination risks of video interviewing

When used too early in the hiring process, video can lead to discrimination based on race, age or sex, but it can have positive ...

• ### Five frontrunners named in enterprise performance management software

Oracle, Anaplan, Tagetik, IBM and Adaptive Insights lead the pack in an evaluation of EPM software that examines functional ...

Close