Inhaltsverzeichnis
SQL-Statements
Nachstehend sind Beispiele für SQL-Statements aufgeführt. Bei Abfragen über die csv-und Excel-Export können Variablen zur Verfügung gestellt werden, die vom Anwender vor dem Ausführen angegeben werden müssen. Diese Variablen sind mit «…» gekennzeichnet: «stichtag» bedeutet demnach, dass der Anwender für diese Abfrage einen Stichtag angeben muss.
Stammdatenlisten
Artikelliste
select agr as artikelgruppe, art as artikelnummer, bez1 as bezeichnung, bme as mengeneinheit from arti where spkz = '0';
Kundenliste
select deb.debnr as kundennr, fir1 as firma, ort from deb, adr where deb.adnr = adr.adnr order by fir1;
Lagerauswertungen
Lagerbestand
select lbj.lort as lagerort, lbj.art as artikel, arti.bez1 as bezeichnung, sum(lbj.saldowert) as bestand from lbj, arti where lbj.art = arti.art and lbj.bdat <= <<stichtag>> and <<art>> and <<lort>> group by lbj.lort, lbj.art, arti.bez1 having sum(lbj.saldowert) != 0 order by lbj.art, lbj.lort;
Lagerbewegungen
select lort as lagerort, bdat as datum, art as artikel, case when rknr_lfk is not null then 'Ausgangslieferung' else case when rknr_elfk is not null then 'Eingangslieferung' else case when rknr_aprk is not null then 'Produktion' else case when rknr_mlazu is not null then 'man. Lagerzugang' else 'man. Lagerabgang' end end end end as Vorgang, case when rknr_lfk is not null then rknr_lfk else case when rknr_elfk is not null then rknr_elfk else case when rknr_aprk is not null then rknr_aprk else case when rknr_mlazu is not null then rknr_mlazu else rknr_mlaab end end end end as Vorgangsnr, saldowert, lagereinheit from lbj where bdat between <<datvon>> and <<datbis>> and art = <<art>> order by bdat;
Ladenhüter
select arti.art as artikel, arti.bez1 as bezeichnung, case when max(lbj.bdat) is null then 'keine Bewegung' else max(lbj.bdat) end as letzte_bewegung from arti left join lbj on arti.art = lbj.art where arti.art not in (select lbj.art from lbj where bdat::date >= current_date - <<anzahl_tage>>) group by arti.art, arti.bez1 order by arti.art;
Umsatzauswertungen
Umsatz nach Artikelgruppe
select arti.agr as Artikelgruppe, round(cast(sum(rep.mwsteuerbem) as numeric),2) as Umsatz from rep, rek, arti where rep.vnr_arti = arti.art and rep.renr = rek.renr and rek.rdat between <<datvon>> and <<datbis>> group by arti.agr order by arti.agr
Umsatz nach Kunde und Artikel
select rek.debnr, adr.fir1 as Kunde, adr.ort as Ort, rep.vnr_arti, rep.bez1, round(cast(sum(rep.mwsteuerbem) as numeric),2) as Umsatz from rep, rek, adr where rek.renr = rep.renr and rek.adnr = adr.adnr and rek.rdat between <<datvon>> and <<datbis>> and rek.debnr = <<kd>> group by rek.debnr, rep.vnr_arti, rep.bez1, adr.fir1, adr.ort order by rep.vnr_arti
Umsatz nach PLZ-Gebiet
select rep.vnr_arti as artikel, substr(adr.plz,1,2) as plz_gebiet, round(cast(sum(rep.mwsteuerbem) as numeric),2) as Umsatz from rep, atrp left join arti on atrp.vnr_arti = arti.art, atrk left join adr on atrk.adnr = adr.adnr where rep.apos = atrp.lfd and rep.atnr_atrk = atrk.atnr and rep.rdat between <<datvon>> and <<datbis>> and substr(adr.plz,1,2) between <<plz1>> and <<plz2>> group by 1,2 order by 1,2;
Umsatzverlauf nach Monaten pro Artikelgruppe
select to_char(date(rep.rdat), 'YYYY-MM') as "Monat", arti.agr as Artikelgruppe, round(cast(sum(rep.mwsteuerbem) as numeric),2) as Umsatz from rep, atrp, atrk, arti where rep.apos = atrp.lfd and rep.atnr_atrk = atrk.atnr and rep.vnr_arti = arti.art and rep.rdat between <<datvon>> and <<datbis>> and <<artgrp>> group by to_char(date(rep.rdat), 'YYYY-MM'), arti.agr order by arti.agr, to_char(date(rep.rdat), 'YYYY-MM')
Absatz pro Artikel im Zeitraum
select vnr_arti as artikel, sum(anz*aeumre) as menge, sum(mwsteuerbem) as umsatz from rep where vnr_arti between <<art1>> and <<art2>> and rdat between <<datvon>> and <<datbis>> group by vnr_arti;
Buchhaltungsauswertungen
Kontobewegungen
select buchungsdatum, belegdatum, buchungsnr, buchungstext, belegtext, kontokorrent, saldowertmw from journal where auswkto = <<konto>> and buchungsdatum between <<datvon>> and <<datbis>>
Kontokorrentbewegungen
select buchungsdatum, belegdatum, buchungsnr, buchungstext, belegtext, kontokorrent, saldowertmw from journal where kontokorrent = <<konto>> and buchungsdatum between <<datvon>> and <<datbis>> order by buchungsdatum
OP-Liste Debitoren
select journal.kontokorrent as Debitor, journal.zuordopnr as beleg, buchungsbekopf.belegdatum, buchungsbekopf.extbelegnr as belegnr, buchungsbekopf.buchungstext, round(cast(sum(journal.saldowertmw) as numeric),2) as opbetrag from journal inner join buchungsbekopf on journal.zuordopnr = buchungsbekopf.buchungsnr where journal.buchungsdatum <= <<stichtag>> and auswkto = <<hauptbuchkonto>> group by 1,2,3,4,5 having round(cast(sum(saldowertmw) as numeric),2) != 0 order by 1,3,4,2;
Saldenliste Kreditoren
select kontokorrent as kreditor, round(cast(sum(saldowertmw) as numeric),2) as saldo from journal where buchungsdatum <= <<stichtag>> and auswkto = <<hauptbuchkonto>> group by kontokorrent having round(cast(sum(saldowertmw) as numeric),2) != 0 order by kontokorrent
Umsatzsteuerauswertung
select journaltemp.usvazeile, usvazeile.bezeichnung, auswkto as konto, kontorahmen.bezeichnung, round(cast(sum(journaltemp.saldowertmw) *-1 as numeric),2) as wert from journaltemp, kontorahmen, usvazeile where journaltemp.usvazeile = usvazeile.usvazeile and journaltemp.auswkto = kontorahmen.kontonummer and buchungsdatum between <<datvon>> and <<datbis>> and journaltemp.usvazeile is not null group by journaltemp.usvazeile, usvazeile.ordnung, usvazeile.bezeichnung, kontorahmen.bezeichnung, auswkto order by usvazeile.ordnung, journaltemp.usvazeile, auswkto;
Rechnungsausgangsliste
select rdat as rechnungsdatum, renr as rechnungsnr, mwsteuerbem as netto, mwsteuer as steuer, mwbrutto as brutto from rek where rdat between <<datvon>> and <<datbis>> order by 1,2;
Auftragsauswertungen
nicht gedruckte Aufträge
select dat as datum, atnr as auftrag, debnr as debitor, mwsteuerbem as auftragswert from atrk where atnr not in (select numc from prnthist where pmask = 'ATRK' and scriptname = 'Auftrag drucken') order by 1,2;
offene Aufträge
select atrk.dat as auftragsdatum, atrk.atnr as auftragsnr, atrk.debnr as kunde, adr.fir1 as name, adr.ort as ort, atrp.mwsteuerbem/atrp.anz*(atrp.anz-atrp.abre) as auftragswert from atrp left join atrk on atrp.atnr = atrk.atnr left join adr on atrk.adnr = adr.adnr where (atrp.anz - atrp.abre != 0 or atrp.anz - atrp.agli != 0) and atrp.stat != 26473 and atrk.stat != 26473 order by 1,2;