Я подключаюсь из 8.3 к 7.7 через внешний источник данных.
Хочу получить остаток на дату.
В какой момент и как передать параметр для запроса ?
Вот рабочее выражение:
select
rg2099_vt.sp2094 as Номенклатура,
sum(rg2099_vt.sp2097) as КоличествоОстаток
from rg2099 as rg2099_vt (nolock)
where rg2099_vt.period={d 'Сюда нужно подставить дату'}
Исчерпывающая справка от 1С:
"В свойствах функции в поле "Выражение в источнике данных" нажмите кнопку выбора
В текстовом поле введите требуемое выражение на языке запросов источника с параметрами.
Параметры обозначаются следующим образом: &n, где n – порядковый номер фактического параметра, начиная с 1."
Ладно, тогда может то подскажет. Как в SQL форматировать дату.
Мне из getdate() которая возвращает yyyy-mm-dd hh:MM:ss.mls (как то так, точно не знаю как правильно) - нужно получить только yyyy-mm-dd преобразованный в CHAR.
я пробовал datepart() но месяц он без нуля возвращает, так что такая конструкция:
"SELECT CAST(DATEPART(yyyy,GETDATE()) AS CHAR(4)) + '-' + CAST(DATEPART(mm,GETDATE()) AS CHAR(2)) + '-' + CAST(DATEPART(DD,GETDATE()) AS CHAR(2))"к сожалению не подходит
Тема закрывается. Получить остатки 7.7 на дату из SQL если и реально - то очень геморройно.
SELECT TOP 100 ОстаткиТМЦОстатки.Номенклатура [Номенклатура $Справочник.Номенклатура]
, ОстаткиТМЦОстатки.КоличествоОстаток
FROM (select
rr2099_vt.sp2094 as Номенклатура,
sum(rr2099_vt.sp2097) as КоличествоОстаток
from (
select
rg2099_vt.sp2094,
rg2099_vt.sp2097
from rg2099 as rg2099_vt (nolock)
where rg2099_vt.period={d '2016-07-01'}
union all
select
ra2099_vt.sp2094,
case ra2099_vt.debkred when 0 then ra2099_vt.sp2097 else -ra2099_vt.sp2097 end
from ra2099 as ra2099_vt (nolock)
where ra2099_vt.date_time_iddoc > '20160701' and ra2099_vt.date_time_iddoc < '20160702'
) as rr2099_vt
group by
rr2099_vt.sp2094
having
sum(rr2099_vt.sp2097) <> 0
) as ОстаткиТМЦОстатки
вот так выглядит запрос в скуле, скопировать его проблем нет, но непонятно почему в первом запросе объединения в одних случаях нужно брать начало этого месяца, а в других - прошлого, остатки то рассчитаны на начало этого..
в общем эта тема только для экспертов. с наскоку не решается
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший