Here is your result hope this will help you.
CREATE TABLE [dbo].[orders](
[order_id] [int] NOT NULL,
[order_date] DateTime NULL
)
CREATE TABLE [dbo].[drivers](
[driver_id] [int] NOT NULL,
[driver_name] varchar(50) NULL
)
CREATE TABLE [dbo].[notifications](
[driver_id] [int] NOT NULL,
[order_id] [int] NOT NULL,
[order_delivery] varchar(50) NULL
)
GO
INSERT [dbo].[orders] VALUES (1, getdate())
INSERT [dbo].[orders] VALUES (2, DATEADD(day,30,getdate()) )
INSERT [dbo].[orders] VALUES (3, DATEADD(day,15,getdate()) )
INSERT [dbo].[drivers] VALUES (1, 'Driver1')
INSERT [dbo].[drivers] VALUES (2, 'Driver2')
INSERT [dbo].[drivers] VALUES (3, 'Driver3')
INSERT [dbo].[drivers] VALUES (4, 'Driver4')
INSERT [dbo].[notifications] VALUES (1,1, 'YES')
INSERT [dbo].[notifications] VALUES (1,1, 'YES')
INSERT [dbo].[notifications] VALUES (1,2, 'YES')
INSERT [dbo].[notifications] VALUES (1,3, 'YES')
INSERT [dbo].[notifications] VALUES (1,4, 'YES')
INSERT [dbo].[notifications] VALUES (2,1, 'YES')
INSERT [dbo].[notifications] VALUES (2,2, 'YES')
INSERT [dbo].[notifications] VALUES (2,2, 'YES')
INSERT [dbo].[notifications] VALUES (2,2, 'YES')
INSERT [dbo].[notifications] VALUES (2,3, 'YES')
INSERT [dbo].[notifications] VALUES (3,2, 'YES')
INSERT [dbo].[notifications] VALUES (3,2, 'YES')
INSERT [dbo].[notifications] VALUES (3,2, 'YES')
INSERT [dbo].[notifications] VALUES (3,2, 'YES')
INSERT [dbo].[notifications] VALUES (3,3, 'YES')
Declare @StartDate datetime= getdate(),
@endate datetime=DATEADD(day,30,getdate())
Select D.Driver_Name ,
Count(N.order_delivery) TotalCounts
FROM
notifications N
Left Outer JOIN orders O
ON N.order_id=O.Order_id
Left Outer JOIN drivers D
ON N.driver_id=D.driver_id
Where
O.order_date between @StartDate and @endate
Group BY
D.Driver_Name