Thom Andrews

"Database Administrator" for a small Insurance Broker in England.

I use the quotes as, being a small business, although my role is called Database Administrator, you often need to be a jack of all trades for small companies. As a result I have exposure to Network Administration, Web Development, and some server maintenance (mainly the Ubuntu servers at the office); so although I'm not trained I've had to assist enough times to know what I'm looking for or at (which greatly helps when a problem isn't SQL Server based).

SQL Server enthusiast, however, little to no experience on with any other RDBMS. Linux and Windows user, with VB.Net experience, and enjoy to dabble in PoSH and Bash. I can read C#, it is a .Net language after all, but I'm hopeless at writing it; for some reason it's always escaped my grasp. I can't even blame it on the compulsory semi-colons as (one day) they'll be compulsory in T-SQL too (bring it on SQL Server 2037!).

Blogs

AI Innovation in Microsoft Keynote

By

I’m thrilled to be covering the Microsoft Keynote: Fuel AI Innovation with Azure Databases on Day...

Benefits of Migrating from Azure Synapse Analytics to Microsoft Fabric

By

Many customers ask me about the advantages of moving from Azure Synapse Analytics to...

PASS Summit 2024 – A Very Different World

By

The last data centric conference I attended was the PASS Summit in 2019. A...

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