====== Извличане на SQL код за създаване на нов анализ ====== В случай, че желаете да [[dopalnitelni_moduli:selmatic_plus_analizi:glaven_prozorec:nov_analiz|създадете нов анализ]] на базата на справка от SelMatic Plus, може да използвате SQL кода на справката и да го заложите в желания анализ. Извличането на SQL кода на дадена справка се извършва по следния начин: Отворете произволна справка - например "Продажби по суми" и я обновете. След това натиснете клавишната комбинация Ctrl+Shift+F12, за да заредите прозорец **"SQL монитор"** и отново обновете справката. В SQL монитора се зарежда съответния **SQL код**. {{:dopalnitelni_moduli:selmatic_plus_analizi:advance_nastrojki:prodazba_sas_sql_monitor.jpg|}} Копирайте съдържанието от прозореца на 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:makrosi|макроси]] за обект, период, групи позиции, според спецификата на анализа. ------------------------------------------------ [[dopalnitelni_moduli:selmatic_plus_analizi:advance nastrojki|Експертни настройки - въведение]] [[dopalnitelni_moduli:selmatic_plus_analizi:glaven_prozorec:nov_analiz|Създаване на изцяло нов анализ]] [[dopalnitelni_moduli:selmatic_plus_analizi:advance_nastrojki:posledovatelnost_na_rabota|Основни стъпки при работа с анализите - създаване и редакция]] [[dopalnitelni_moduli:selmatic_plus_analizi:advance_nastrojki:osnovni_svojstva_analiz_diagrama_iztochnik|Свойства на Анализ, Източник на данни и Диаграма]] [[dopalnitelni_moduli:selmatic_plus_analizi:advance_nastrojki:makrosi|Експертни настройки - макроси за филтриране по обекти, период и групи позиции]] [[dopalnitelni_moduli:selmatic_plus_analizi:advance_nastrojki:nova_dimensia|Създаване на дименсии]] [[dopalnitelni_moduli:selmatic_plus_analizi:advance_nastrojki:dimensii s formuli|Създаване на дименсии, изчислени по формула от други дименсии]] [[dopalnitelni_moduli:selmatic_plus_analizi:advance_nastrojki:osnovni_svojstva|Свойства на дименсиите]] [[dopalnitelni_moduli:selmatic_plus_analizi:vavedenie|Съдържание]]