SQLServerCentral Editorial

Look Beyond What You See

One of the sales managers at Redgate Software posted an origin story about how he came to work at Redgate Software. It's an interesting story, and while I don't work in sales or have the same origin story, I don't know that I could have seen the place I'm in now early in my career. […]

External Article

Building a Database with Flyway

Flyway, especially Flyway Teams edition, can be used in several different ways to accommodate a database development that was originally based on builds rather than migrations. This article explores four different ways to use Flyway to build a particular version of a database, from the ground up, using a single migration script. It should help teams select the best way to incorporate Flyway into an existing database build system, during development, while benefitting from use of Flyway's versioned migration system for deployments and releases.

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