Инструменти за потребители

Инструменти за сайта


dopalnitelni_moduli:selmatic_plus_analizi:advance_nastrojki:izvlichane_na_sql

Извличане на SQL код за създаване на нов анализ

В случай, че желаете да създадете нов анализ на базата на справка от SelMatic Plus, може да използвате SQL кода на справката и да го заложите в желания анализ.

Извличането на SQL кода на дадена справка се извършва по следния начин: Отворете произволна справка - например „Продажби по суми“ и я обновете. След това натиснете клавишната комбинация Ctrl+Shift+F12, за да заредите прозорец „SQL монитор“ и отново обновете справката. В SQL монитора се зарежда съответния SQL код.

Копирайте съдържанието от прозореца на SQL монитора и го поставете в произволен текстови редактор или IВЕxpert, за да го редактирате. Необходимо е премахнете всички черти, дати и излишни полета. Целта е да се получи SQL код във вида:

Пример:

„select p.nomer,p.data,p.prikluchen,
case
when p.tip = 0 then 'Обикновена'
when p.tip = 1 then 'Отч.от Консигн.'
when p.tip = 2 then 'Производство'
when p.tip = 3 then 'По заявка'
end tip,
case
when p.nachin_plashtane = 0 then 'В брой'
when p.nachin_plashtane = 1 then 'По сметка'
when p.nachin_plashtane = 2 then 'С прихващане'
when p.nachin_plashtane = 3 then 'Бартер'
when p.nachin_plashtane = 4 then 'С дебитна/кредитна карта'
when p.nachin_plashtane = 5 then 'Смесен'
when p.nachin_plashtane = 6 then 'Наложен платеж'
end nachin_plashtane,
case
when p.status_prodazba is null then 'Изпратена'
when p.status_prodazba = 1 then 'Неизпратена'
when p.status_prodazba = 2 then 'Фиктивна'
end status_prodazba ,
p.faktura_nomer,
case
when p.faktura_nomer is null then null
when p.faktura_nomer is not null then p.faktura_data
end faktura_data,
p.anuliran, p.obekt_nomer,o.obekt,p.KONTRAGENT_nomer,
k.KONTRAGENT,coalesce(ko.grad, k.sedalishte_grad) kontragent_grad,k.krime,ko.ime kontragent_obekt_ime,sum(stoinost_bez_to) stoinost_bez_to, sum(stoinost_to) stoinost_to, sum(pd.stoinost_bez_dds) stoinost_bez_dds, sum(pd.stoinost_dds) stoinost_dds, sum(pd.stoinost_s_dds) stoinost_s_dds,v.valuta, p.komentаr,p.METRO_VHSTOKOV_NOMER, p.data_poluchawane_faktura, p.srok_na_plashtane, op.osnovanie_prodazba, p.dilar_nomer1, p.dilar_nomer2, d1.dilar dilar1, d2.dilar dilar2, k.bulstat, k.dannomer, k.ddsnomer,sum(pd.originalna_stoinost) originalna_stoinost,
case
when p.faktura_nomer is null then null
when p.vid_faktura = 0 then 'Фактура'
when p.vid_faktura = 1 then 'Данъчна фактура'
when p.vid_faktura = 2 then 'Опростена фактура'
when p.vid_faktura = 3 then 'Кредитно известие'
when p.vid_faktura = 4 then 'Дебитно известие'
end vid_faktura, smiana_nomer, sd.nomer sdelka_nomer, sd.ime sdelka_ime, d1.EGN EGN1,d2.EGN EGN2, p.OFERTA_NOMER, p.DALG_OT_PREDISHNI_PRODAZBI, p.KREDITEN_LIMIT, p.KREDITEN_LIMIT_VALUTA_NOMER, kv.VALUTA, p.METRO_PORACHKA_NOMER, p.KONTRAGENT_BARCODE, p.data_na_dostavka, p.data_na_izpalnenie, p.BROI_OPAKOVKI
from prodazbi p
left join prodazbi_de pd on pd.prodazba_nomer=p.nomer
join obekti o on p.obekt_nomer=o.nomer
join kontragenti k on p.kontragent_nomer=k.nomer
left join kontragenti_obekti ko on p.kontragent_obekt_nomer=ko.nomer
join valuti v on pd.valuta_nomer=v.nomer
left join osnovania_prodazbi op on op.nomer=p.osnovanie_prodazba_nomer
left join dilari d1 on d1.nomer=p.dilar_nomer1
left join dilari d2 on d2.nomer=p.dilar_nomer2
left join sdelki sd on p.sdelka_nomer = sd.nomer
left outer join valuti kv on p.KREDITEN_LIMIT_VALUTA_NOMER = kv.Nomer
left join grupikontr gpk on gpk.nomer = k.KONTR_GRUPA_NOMER
where(p.anuliran=0) and ( ( ( (STATUS_PRODAZBA <> 2) or (STATUS_PRODAZBA is null) ) ) and (p.obekt_nomer not in (3,5)))
group by p.nomer,p.data,p.prikluchen, p.faktura_nomer, p.faktura_data, p.anuliran, p.obekt_nomer,o.obekt, p.kontragent_nomer, k.KONTRAGENT, k.sedalishte_grad, k.krime, p.KONTRAGENT_obekt_nomer, ko.ime, ko.grad,p.komentar, v.valuta, p.tip, p.nachin_plashtane, p.METRO_VHSTOKOV_NOMER, p.data_poluchawane_faktura, p.srok_na_plashtane, op.osnovanie_prodazba, p.dilar_nomer1, p.dilar_nomer2, d1.dilar, d2.dilar, k.bulstat, k.dannomer, k.ddsnomer, p.vid_faktura,smiana_nomer,sd.nomer, sd.ime,p.status_prodazba, d1.EGN,d2.EGN,p.OFERTA_NOMER, p.DALG_OT_PREDISHNI_PRODAZBI, p.KREDITEN_LIMIT, p.KREDITEN_LIMIT_VALUTA_NOMER, kv.VALUTA, p.METRO_PORACHKA_NOMER, p.KONTRAGENT_BARCODE, p.data_na_dostavka, p.data_na_izpalnenie, p.BROI_OPAKOVKI
order by p.data, p.nomer“

„Where“ клаузата включва ограниченията по обект, дата или групи позиции от основните филтри. Данните в нея се подават според източника на данни. Не всеки източник може и има нужда да бъде филтриран по обект. За бази данни, съдържащи малък брой обекти или за анализи, които нямат общо с обекти, този филтър няма смисъл.
Аналогично, не всеки източник на данни може и има нужда да бъде филтриран по период или групи позиции.

Като цяло, за да работи филтрацията по обекти, период и/или групи позиции е необходимо съставящия SQL-а на източника на данните изрично да приложи (заложи) съответните макроси за обект, период, групи позиции, според спецификата на анализа.


Експертни настройки - въведение

Създаване на изцяло нов анализ

Основни стъпки при работа с анализите - създаване и редакция

Свойства на Анализ, Източник на данни и Диаграма

Експертни настройки - макроси за филтриране по обекти, период и групи позиции

Създаване на дименсии

Създаване на дименсии, изчислени по формула от други дименсии

Свойства на дименсиите

Съдържание

dopalnitelni_moduli/selmatic_plus_analizi/advance_nastrojki/izvlichane_na_sql.txt · Последна промяна: 2018/01/11 15:34 от 127.0.0.1