Skip to content

Instantly share code, notes, and snippets.

@MikeRzhevsky
Created February 25, 2022 18:56
Show Gist options
  • Save MikeRzhevsky/60aa57f8250620982832a3b1939d3f46 to your computer and use it in GitHub Desktop.
Save MikeRzhevsky/60aa57f8250620982832a3b1939d3f46 to your computer and use it in GitHub Desktop.
{{ config(
as_columnstore=false
, post_hook=["
{{ create_nonclustered_index( ['Товар']) }}
{{ create_nonclustered_index( ['СкладКуда']) }}
{{ create_nonclustered_index( ['СкладОткуда']) }}
"]
)
}}
{% set start_date = '20210101' %}
-- Куда = Тип Движения = 1
with СкладКуда as (
select Регистратор, Склад as СклКуда,max(whn.Наименование) as КудаНаименование, Товар
from {{ ref('dm_stage_РегистрНакопления_ОстаткиТоваров') }}
left join {{ ref('dm_stage_Справочник_МестаХранения') }} whn on whn.Ссылка = Склад
where ТипДвижения = 0 and Период > '{{start_date}}'
group by Регистратор, Товар, Склад
),
СкладОткуда as (
select Регистратор, Склад as СклОткуда, max(whn.Наименование) as ОткудаНаименование, Товар as Товар
from {{ ref('dm_stage_РегистрНакопления_ОстаткиТоваров') }}
left join {{ ref('dm_stage_Справочник_МестаХранения') }} whn on whn.Ссылка = Склад
where ТипДвижения = 1 and Период > '{{start_date}}'
group by Регистратор,Склад,Товар,Период
)
select {{ BinaryToChar( 'mov.Товар' ) }} as Товар, mov.Товар as ТоварБин, СкладКуда.КудаНаименование as СкладКуда, whn.Наименование as СкладОткуда, mov.ОстатокТовара as Количество,mov.Период
from {{ ref('dm_stage_РегистрНакопления_ОстаткиТоваров') }} as mov
LEFT OUTER JOIN СкладКуда on СкладКуда.Регистратор = mov.Регистратор and СкладКуда.Товар = mov.Товар
LEFT JOIN {{ ref('dm_stage_Справочник_МестаХранения') }} whn on whn.Ссылка = mov.Склад
where mov.ТипДвижения = 1 and mov.Период > '{{start_date}}'
union all
select {{ BinaryToChar( 'mov.Товар' ) }} as Товар, mov.Товар as ТоварБин, whn.Наименование as СкладКуда,СкладОткуда.ОткудаНаименование as СкладОткуда, mov.ОстатокТовара as Количество, mov.Период
from {{ ref('dm_stage_РегистрНакопления_ОстаткиТоваров') }} as mov
LEFT OUTER JOIN СкладОткуда on СкладОткуда.Регистратор = mov.Регистратор and СкладОткуда.Товар = mov.Товар
LEFT JOIN {{ ref('dm_stage_Справочник_МестаХранения') }} whn on whn.Ссылка = mov.Склад
where mov.ТипДвижения = 0 and mov.Период > '{{start_date}}'
and not exists (select 1 from {{ ref('dm_stage_РегистрНакопления_ОстаткиТоваров') }}
where Период > '{{start_date}}' and ТипДвижения = 1
and Регистратор = mov.Регистратор and Товар = mov.Товар )
@MikeRzhevsky
Copy link
Author

Проверка что Количество по складу на дату сходится
select sum(ОстатокТовара) from CifraTest.[dbt_stage].dm_stage_РегистрНакопления_ОстаткиТоваров
where Склад = 0x80F5A8494DAAE3A211EA7EFD9B95F39E
and Период between '20210201' and '20210205'

select sum(Количество) from CifraTest.[dbt_logist].dm_ДижениеТоваров
where (СкладОткуда = 'Ozon' or СкладКуда = 'Ozon')
and Период between '20210201' and '20210205'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment