Andy Warren

I'm Andy Warren, currently a SQL Server trainer with End to End Training. Over the past few years I've been a developer, DBA, and IT Director. I was one of the original founders of SQLServerCentral.com and helped grow that community from zero to about 300k members before deciding to move on to other ventures.

Blog Post

A Server Bench

This past weekend I was doing some early Spring cleaning and decided it was time to throw out two old...

2014-01-15

626 reads

Blog Post

Two-Factor Authentication

Something you have and something you know – that’s the heart of two-factor, sometimes called multi-factor, authentication. RSA was for years...

2014-01-15 (first published: )

6,319 reads

Blogs

Day 2 at PASS Data Community Summit 2024

By

I missed blogging yesterday as I was on stage/backstage for quite a bit of...

PASS Summit 2024 – Wednesday

By

A common theme in the PASS Summits I've attended is community and that's definitely...

Taming Database Challenges: Insights from Redgate Keynote

By

I am excited to cover the Microsoft Keynote on Day 2: Redgate Keynote: Simplifying...

Read the latest Blogs

Forums

Deduplicating rows by choosing the row with the shortest string

By Mark Dalley

Hello T-SQL experts I have a table containing team codes and descriptions. Unfortunately, many...

query help

By Bruin

I need some help to optimize this query as it runs in many threads...

Unencrypted connections in Always on Availability Group

By Awais Afzal

Hi, In my Always On Availability environment, I am seeing two encrypt_option values as...

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