Ti faccio un esempio 
Poniamo di avere una Tabella con le testate ordini clienti
e una Tabella con le righe ordine 
le condizioni:
- Filtra i records per un periodo dalla data alla data
- Unisci le testate con le righe ordini per Id Ordine
- con la sottoquery conta le righe degli ordini
- restituire le fields:- IDOrdine
- IDCliente
- DataOrdine
- CodiceArticolo
- Quantità
- NumeroRighe
 
.
più o meno, se non ho scritto male, dovresti fare una cosa di questo tipo:
SELECT 
    o.IDOrdine, 
    o.IDCliente, 
    o.DataOrdine, 
    r.CodiceArticolo, 
    r.Quantità,
    (SELECT COUNT(*) 
     FROM RigheOrdine r2 
     WHERE r2.IDOrdine = o.IDOrdine) AS NumeroRighe
FROM Ordini o
INNER JOIN RigheOrdine r ON o.IDOrdine = r.IDOrdine
WHERE o.DataOrdine BETWEEN '2024-01-01' AND '2024-01-31'
ORDER BY o.IDOrdine;
Nota: per semplificare la rilettura e la scrittura, in questo esempio, viene usato un alias per le due tabelle : "o" per Ordini e "r" per RigheOrdini e "r2" per la sottoquery che esegue il conteggio righe dell'ordine