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;
api/excelexport/sql_beispiele.txt · Zuletzt geändert: 01.03.2020 08:25 (Externe Bearbeitung)
 

mercaware ist eine ERP-Software der All for Accounting GmbH

ERP für Ihr einzigartiges Unternehmen

Auberlenstr. 13
70736 Fellbach
Tel.: +49 711 90 65 79 71
E-Mail: