Why do you have two WHERE clauses in the same query?
where dbo.setup_color.color_id=(select color_no from dbo.setup_color)
where master_order.shipment_date>=@from and master_order.shipment_date<=@to
Did you mean:
where dbo.setup_color.color_id=(select color_no from dbo.setup_color
where master_order.shipment_date>=@from and
master_order.shipment_date<=@to)
Or
where dbo.setup_color.color_id=(select color_no from dbo.setup_color)
AND master_order.shipment_date>=@from and master_order.shipment_date<=@to