Much harder without consumable sample data, but something like below should be really close at least. I'm not 100% sure on the specific end date determination you want, but you can adjust that as needed.
You don't really need a calendar table, an in-line tally table will do just fine and is much less overhead.
DECLARE @start_date date
DECLARE @end_date date
SET @start_date = DATEADD(YEAR, -1, GETDATE())
SET @end_date = GETDATE()
;WITH
cteTally10 AS (
SELECT * FROM (VALUES(0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) AS numbers(number)
),
cteTally1000 AS (
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) - 1 AS number
FROM cteTally10 c1
CROSS JOIN cteTally10 c2
CROSS JOIN cteTally10 c3
)
SELECT
CONVERT(char(4), date, 112) AS Year,
CONVERT(char(2), date, 1) AS Month,
CONVERT(char(2), date, 3) AS Day,
ActiveOrdersCount
FROM (
SELECT
date, COUNT(*) AS ActiveOrdersCount
FROM cteTally1000 days
CROSS APPLY (
SELECT DATEADD(DAY, days.number, @start_date) AS date
) AS calc_next_date
INNER JOIN dbo.OrderTable ot ON ot.StartDtm >= date AND
(ot.StopDtm IS NULL OR ot.StopDtm > date)
WHERE days.number BETWEEN 0 AND DATEDIFF(DAY, @start_date, @end_date) - 1
) AS derived
SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.