Blog Posts

Blog Post

2012 DDL for Roles

TweetG’day,
I’m extremely pleased that Microsoft are continuing their commitment to provide full DDL to preform TSQL operations that have previously been preformed using stored...

2012-04-22

1,325 reads

Blog Post

CONCAT in SQL 2012

SQL Server 2012 introduces a brand new string function called CONCAT(). CONCAT() string function allows you to concatenate up to 255 string or variable values in to one single...

2012-04-20

65 reads

Blogs

T-SQL Tuesday #180: Good enough is perfect

By

How can you achieve good enough without compromising the process/product? In the world of...

How to Convert FileTime to DateTime

By

One of my customers recently wanted to rename each of the SQL audit files...

The pros and cons of self-service BI: What every industry leader should know

By

The post The pros and cons of self-service BI: What every industry leader should...

Read the latest Blogs

Forums

What's New for the Microsoft Data Platform

By Steve Jones - SSC Editor

Comments posted to this topic are about the item What's New for the Microsoft...

Using Outer Joins

By Steve Jones - SSC Editor

Comments posted to this topic are about the item Using Outer Joins

Closest to ProcDate

By boehnc

Not sure I have this 2nd left join correct. I need to grab the...

Visit the forum

Question of the Day

Using Outer Joins

I have this data in a SQL Server 2019 database:

Customer table
CustomerID CustomerName
1          Steve
2          Andy
3          Brian
4          Allen
5          Devin
6          Sally

OrderHeader table
OrderID CustomerID OrderDate
1       1          2024-02-01
2       1          2024-03-01
3       3          2024-04-01
4       4          2024-05-01
6       4          2024-05-01
7       3          2024-06-07
8       2          2024-04-07
I want a list of all customers and their order counts for a period of time, including zero orders. If I run this query, how many rows are returned?
SELECT 
  c.CustomerName, COUNT(oh.OrderID)
 FROM dbo.Customer AS c
LEFT JOIN dbo.OrderHeader AS oh ON oh.CustomerID = c.CustomerID
WHERE oh.Orderdate > '2024/04/01'
GROUP BY c.CustomerName

See possible answers