Sql query to modify

This is My SQL SERVER QUERY
Here table1 is giving all the data made in per day by Salesman whereas table2 is giving special data of 2 special item which they ar selling
So i need all the invoice and sum from table1 and from table2 i need special item invoice,

Can we optimise this query where i dont have to write table2 query , Is there any casae query if i write in same tabel1 statement.

select m.*,Of_Order_Invoices_SpecialItem from (

select SUPERVISOR,Salesman_name,staffid,
ROUND(sum(Carton),0) AS O_CARTON,ROUND(SUM(Amount),0) AS ORD_AMNT
ROUND(COUNT(DISTINCT(ORDER_ID)),2) as [#Of_Order_Invoices] ,ordt
from t_opdata_3 OP
INNER JOIN T_TREE_ITEMS TI ON OP.ITEM=TI.ITEM_CODE
INNER JOIN daily_total_shoproute ON STAFFID=SALESMANCODE

WHERE order_date =format(getdate() ,'yyyy-MM-dd')
Order_month =MONTH(GETDATE()) and year =YEAR(GETDATE())
GROUP by SUPERVISOR,Salesman_name ,staffid
) table1
left join

(

select SUPERVISOR,Salesman_name,staffid,
ROUND(sum(Carton),0) AS O_CARTON,ROUND(SUM(Amount),0) AS ORD_AMNT ,
ROUND(COUNT(DISTINCT(ORDER_ID)),2) as Of_Order_Invoices_SpecialItem,ordt
from t_opdata_3 OP
INNER JOIN T_TREE_ITEMS TI ON OP.ITEM=TI.ITEM_CODE
INNER JOIN daily_total_shoproute ON STAFFID=SALESMANCODE
---INNER JOIN T_TARGET T ON TU.ManagerCode=T.managercode

WHERE order_date =format(getdate() ,'yyyy-MM-dd') and O_Item in ('4567','23478')
Order_month =MONTH(GETDATE()) and year =YEAR(GETDATE())
GROUP by SUPERVISOR,Salesman_name ,staffid
) table2 on table1.staffid=table2.staffid

SELECT		Supervisor,
	Salesman_Name,
	StaffID,
	ROUND(SUM(Carton), 0) AS O_CARTON,
	ROUND(SUM(Amount), 0) AS ORD_AMNT,
	ROUND(COUNT(DISTINCT ORDER_ID), 2) AS [#Of_Order_Invoices],
	ROUND(COUNT(DISTINCT CASE WHEN O_Item IN ('4567', '23478') THEN ORDER_ID ELSE NULL END, 2) AS Of_Order_Invoices_SpecialItem,
	OrdT

from dbo.t_opdata_3 AS OP
INNER JOIN dbo.T_TREE_ITEMS AS TI ON OP.ITEM = TI.ITEM_CODE
INNER JOIN dbo.daily_total_shoproute ON STAFFID = SALESMANCODE
WHERE order_date = format(getdate() ,'yyyy-MM-dd')
and Order_month = MONTH(GETDATE())
and year = YEAR(GETDATE())
GROUP BY Supervisor,
Salesman_Name,
StaffID;