Добавляя параметры к SQL, выбирайте и используйте их в Cognos Report Studio версии 10.2.1 - PullRequest
1 голос
/ 21 февраля 2020

Я пытаюсь вставить в свой параметр выбора даты. Я не уверен, как на самом деле это сделать. Прямо сейчас у меня есть фиксированное значение даты в нем, и теперь я хочу иметь такой параметр, как: StartDate и EndDate. Я буду очень благодарен за любую помощь. Мой выбор:

select laborcode,
(select sum(workhours) from workperiod where calnum='KOPA'and workdate between to_date('01.02.2020','DD.MM.YYYY') and to_date('01.03.2020','DD.MM.YYYY')) -  
(select count(calnum) from workperiod where calnum='KOPA'and workdate between to_date('01.02.2020','DD.MM.YYYY') and to_date('01.03.2020','DD.MM.YYYY') and shiftnum='HOLIDAY') * 8 as stevilo_praznikov_ure,
(select sum(lt.regularhrs) from labtrans lt where lt.laborcode = l.laborcode and lt.orgid = l.orgid and startdate between to_date('01.02.2020','DD.MM.YYYY') and to_date('01.03.2020','DD.MM.YYYY')) as delovne_ure,
(select sum(ass.laborhrs) from assignment ass where ass.laborcode = l.laborcode and ass.scheduledate between to_date('01.02.2020','DD.MM.YYYY') and to_date('01.03.2020','DD.MM.YYYY')) as assignment_ure
from labor l

1 Ответ

3 голосов
/ 21 февраля 2020

Синтаксис запроса макроса: #prompt ('StartDate', 'date') # Что изменит ваше SQL на:

выбор кода труда, (выбор суммы (рабочих часов) из рабочего периода, где calnum = ' KOPA 'и рабочая дата между to_date (#prompt (' StartDate ',' date ') #,' DD.MM.YYYY ') и to_date (#prompt (' EndDate ',' date ') #,' DD.MM.YYYY ')) -
(выберите число (calnum) из рабочего периода, где calnum =' KOPA 'и рабочая дата между to_date (#prompt (' StartDate ',' date ') #,' DD.MM.YYYY ') и to_date ( #prompt ('EndDate', 'date') #, 'DD.MM.YYYY') и shiftnum = 'HOLIDAY') * 8 как stevilo_praznikov_ure, (выберите сумму (lt.regularhrs) из labtrans lt, где lt.laborcode = l .laborcode и lt.orgid = l.orgid и начальная дата между to_date (#prompt ('StartDate', 'date') #, 'DD.MM.YYYY') и to_date (#prompt ('EndDate', 'date') #, 'DD.MM.YYYY')) как delovne_ure, (выберите сумму (ass.laborhrs) из задания ass, где ass.laborcode = l.laborcode и ass.scheduledate между to_date (#prompt ('StartDate', 'date') ) #, 'DD.MM.YYYY') и to_date (#prompt ('EndDate', 'date') #, 'DD .MM.YYYY ')) в качестве assign__ure от труда l

...