Всем привет!
Прошу помощи
Есть следующий SQL запрос. Нужно значения параметров брать из ячеек Excel.
Очень прошу помочь с решением вопроса
В Excel запрос выводится через подключение. Есть ли возможность там задать значение параметра из ячейки?
Заранее бБольшое спасибо за помощь!
Declare @startdate date
, @finishdate date
Set @startdate = '26/09/2022'
Set @finishdate = '22/10/2022';
--Нормы
with norms as(
Select
prodid
,Sum (PROCESSTIME) as PROCESSTIME
From dbo.PRODROUTE (nolock)
group by prodid
)
Select
BrigadeId as "Участок"
--,p.Площадка
,pr.itemid as "НН"
,name as "Наименование"
,qtysched as "Кол-во"
,SourceTransRefId_OVK as "Номер КП"
,SourceAccountName_OVK as "Клиент"
,pr.PRODID as "ПР"
,SchedEnd as "Плановая дата сдачи"
,DlvDate as "Требуемая дата сдачи"
,id.CONFIGID as "Конфигурация"
--,n.PROCESSTIME as "Нормы"
,n.PROCESSTIME*qtysched as "Нормы"
--,sch.Status as "Статус"
,case when Status = 2 then 'Утверждено аналитиком'
when Status in (8, 4) then 'В производстве'
when Status = 1 then 'Создано'
--when Status = 20 then 'Принято складом'
--when Status = 12 then 'Сдача на склад'
--when Status = 25 then 'Проведено'
when Status = 100 then 'Отменено'
when Status = 0 then 'Не определено'
when Status in (9, 12, 25, 20) then 'Завершено'
--when Status = 4 then 'Готов к про-ву'
else 'unknown' end as "Статус"
From dbo.PRODTABLE pr (nolock)
inner join dbo.inventdim id (nolock) on pr.INVENTDIMID = id.INVENTDIMID
left join norms n on pr.prodid= n.PRODID
inner join dbo.PRODSCHEDULEJOBLINE_OVK sch (nolock) on pr.prodid = sch.PRODID
where
(SchedEnd between @startdate and @finishdate
--or SchedEnd between '05/09/2022' and '09/09/2022'
--or SchedEnd between '12/09/2022' and '16/09/2022'
--or SchedEnd between '19/09/2022' and '23/09/2022'
)
and ProdStatus <> 200
and pr.prodid not like '%-%'
and BRIGADEID not in ('1','1.1Б', '1Р','9.1', '9.3', '8.1Б', '6.2')
union
Select
BrigadeId as "Участок"
--,p.Площадка
,pr.itemid as "НН"
,name as "Наименование"
,qtysched as "Кол-во"
,SourceTransRefId_OVK as "Номер КП"
,SourceAccountName_OVK as "Клиент"
,pr.PRODID as "ПР"
,SchedEnd as "Плановая дата сдачи"
,DlvDate as "Требуемая дата сдачи"
,id.CONFIGID as "Конфигурация"
--,n.PROCESSTIME as "Нормы"
,n.PROCESSTIME*qtysched as "Нормы"
--,sch.Status as "Статус"
,case when Status = 2 then 'Утверждено аналитиком'
when Status in (8, 4) then 'В производстве'
when Status = 1 then 'Создано'
--when Status = 20 then 'Принято складом'
--when Status = 12 then 'Сдача на склад'
--when Status = 25 then 'Проведено'
when Status = 100 then 'Отменено'
when Status = 0 then 'Не определено'
when Status in (9, 12, 25, 20) then 'Завершено'
--when Status = 4 then 'Готов к про-ву'
else 'unknown' end as "Статус"
From dbo.PRODTABLE pr (nolock)
inner join dbo.inventdim id (nolock) on pr.INVENTDIMID = id.INVENTDIMID
left join norms n on pr.prodid= n.PRODID
inner join dbo.PRODSCHEDULEJOBLINE_OVK sch (nolock) on pr.prodid = sch.PRODID
where
(SchedEnd between @startdate and @finishdate
--or SchedEnd between '05/09/2022' and '09/09/2022'
--or SchedEnd between '12/09/2022' and '16/09/2022'
--or SchedEnd between '19/09/2022' and '23/09/2022'
)
and ProdStatus <> 200
--and prodid not like '%-%'
and BRIGADEID in ('9.1','9.3')
order by 1, 2