Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PerspektiveKontextBeschreibungDatenbasis
Performance-IndikatorKunden-DashboardMonatliche Umsatzentwicklung mit Vorjahresvergleich des ausgewählten KundenSQLView_vf_performanceindicator
TopsellersKunden-DashboardTop 5 Artikel gemäss UmsatzSQLView_vf_topsellers
SortimentBezügeDetailansicht

Alle bezogenen Artikel des ausgewählten Kunden verdichtet pro Artikel. Zeitraum wählbar nach 30, 90 oder , 180, 365 und 720 Tagen oder benutzerdefinierter Zeitraum

Drilldown-Funktion DrilldownFunktion auf einzelne Bewegung wünschenswert nicht möglich aus Performance-Gründen

SQLView_vf_statisticssales

Performance Indikator und Topseller sind auch denkbar für System-Dashboard

...

Mockup Performance Indikator

Drawio
7
bordertruediagramName1
zoom1
pageId12812368
custContentId19891352
lbox1
diagramDisplayNameMockup Statistik Dashboard
simpleViewercontentVer1false
revisionwidth7
linksauto
tbstyletop
lboxtrue
diagramWidth1183
revisionbaseUrlhttps://i-ag.atlassian.net/wiki
diagramNameMockup Statistik Dashboard
width1183
linksauto
tbstyletop

Field Mapping Performance-Indikator

...

View_fieldEntity.attributetypeDescriptionDEFRITEN
AddressIdBewegung.Bew_AdresseIDforeign keyID der Adresse



DeliveryMonthDelivery_month


Code Block
titlevf_performanceindicator.DeliveryMonth
collapsetrue
MONTH( Bewegung.Bew_Datum )



Monat vom LieferdatumDeliveryYearMonatMoisMeseMonth
Delivery_year


Code Block
titlevf_performanceindicator.DeliveryYear
collapsetrue
YEAR( Bewegung.Bew_Datum )



Jahr vom LieferdatumJahrAnnéeAnnoYear
Quantity


Code Block
titlevf_topsellers.quantity
collapsetrue
SUM (IF (Bewegung.Bew_Anrechenbar IN (0,3)) THEN (IsNull(Bewegung.Bew_Menge,0)) ELSE 0 ENDIF)



Summe der MengenMengeQuantitéQuantitàQuantity
Selling_amount


Code Block
titlevf_topsellers.selling_amount
collapsetrue
SUM (IF (Bewegung.Bew_Anrechenbar IN (0,2)) THEN (IsNull(Bewegung.Bew_NettoErloes,Bewegung.Bew_Menge * Bewegung.Bew_Preis)) ELSE 0 ENDIF)



Summe des NettoerlösesUmsatzChiffre d'affairesFatturatoTurnover

Filter


DBViewValue
whereBewegung.Bew_VorgangProcess-2
andBewegung.Bew_AdresseIDAddressIdis not null
andBewegung.Bew_GegenBewegungId-is null
andBewegung.Bew_Datum
>= CURRENT DATE - 730

...

  • Auf dem System-Dashboard sieht der Aussendiest die 10 Topseller aller seiner Kunden.
  • Auf dem Kunden-Dashboard sieht der Aussendienst die 5 Topseller des entsprechenden Kunden sind

Mockup Topsellers

Field Mapping Topsellers

...

View_fieldEntity.attributetypeDescriptionDEFRITEN
ArticleIdBewegung.Bew_ArtikelIDforeign keyID des Artikels



AddressIdBewegung.Bew_AdresseIDforeign keyID der Adresse



Quantity


Code Block
titlevf_topsellers.quantity
collapsetrue
SUM (IF (Bewegung.Bew_Anrechenbar IN (0,3)) THEN (IsNull(Bewegung.Bew_Menge,0)) ELSE 0 ENDIF)



Summe der MengenMengeQuantitéQuantitàQuantity
Selling_amount


Code Block
titlevf_topsellers.selling_amount
collapsetrue
SUM (IF (Bewegung.Bew_Anrechenbar IN (0,2)) THEN (IsNull(Bewegung.Bew_NettoErloes,Bewegung.Bew_Menge * Bewegung.Bew_Preis)) ELSE 0 ENDIF)



Summe des NettoerlösesUmsatzChiffre d'affairesFatturatoTurnover

Filter


DBViewValue
whereBewegung.Bew_VorgangProcess-2
andBewegung.Bew_AdresseIDAddressIdis not null
andBewegung.Bew_GegenBewegungId-is null
andBewegung.Bew_Datum
>= CURRENT DATE - 365

...

Order by Klausel

Selling_amount

...

Bezüge

Mockup

...

Bezüge


Field Mapping

...

Bezüge

Berechnung Delivery_monthMONTHDelivery_yearBerechnung Delivery_yearYEARBilling_monthBerechnung Billing_monthBilling_yearBerechnung Billing_yearYEARAbgerechnetAm
View_fieldEntity.attributetypeDescriptionDEFRITEN
ArticleIdBewegung.Bew_ArtikelIDforeign keyID des Artikels



AddressIdBewegung.Bew_AdresseIDforeign keyID der Adresse
OrderIdBewegung.Bew_BelegIDforeign keyID des Belegs
OrderPositionIdBewegung.Bew_BelegIDforeign keyID der Artikleposition
WarehouseIdBewegung.Bew_LagerIDforeign keyID des Lagers
Unit_size_clAbfuellung.Abf_InhaltInClnumericFlaschengrösse in Zentiliter (cl), default 1
Statistic_relevanceBewegung.Bew_Anrechenbarinteger

0 = Umsatz und Menge

2 = Nur Umsatz

3 = Nur Menge (Gratiswaren)

Delivery_noBewegung.Bew_BelegNrintegerLieferschein-Nr
Delivery_dateBewegung.Bew_DatumdateLieferdatum gemäss Datum Lieferschein
Delivery_month



ArticleNameArtikel.Art_BezeichnungstringArtikel BezeichnungBezeichnungDescription
Description

Vintage

Artikel.Art_JahrgangintegerJahrgangJahrgangMillésime
Vintage
VolumeArtikel.Art_VolumenintegerVolumenVolumenDegré d'alcool
Volume
FillingAbfuellung.Abf_Kuerzelstring,20AbfüllungAbfüllungCondionnement
Filling
PackagingGrossgebinde.Gross_Kuerzelstring,20GrossgebindeGrossgebindeEmballage
Packaging
ArticleCategoryArtikelkategorie.ArtKat_Bezeichnungstring,40ArtikelkategorieArtikelkategorieCatégorie d'article
Article Category
ArticleTypeArtikelkategorie.ArtKat_TypBezeichnungstring,30ArtikeltypArtikeltypType d'article
Article Type
ManufacturerProduzent.Prod_Bezeichnungstring,50ProduzentProduzentProducteur
Producer
RegionRegion.Reg_Bezeichnungstring,40RegionRegionRégion
Region
CountryLand.Land_Bezeichnungstring,40LandLandPays
Country
ProductCycleZyklus.Zyk_Bezeichnungstring.,40ProduktzyklusProduktzyklusCycle du produit
Product cycle
AddressSurnameAdresse.Adr_Namestring,50NameNameNom
Surname
AddressNameAdresse.Adr_Vornamestring,25VornameVornamePrénom
Name
AddressAddAdresse.Adr_Zusatz1string,30Zusatz 1Zusatz 1Additiv au nom 1
Additional Name 1
AddressZIPAdresse.Adr_PLZstring,10PLZPLZNPA
ZIP
AddressPlaceAdresse.Adr_Ortstring,30OrtOrtLieu
Place
AddressCategoryKundenkategorie.KundKat_Bezeichnungstring,40KundenkategorieKundenkategorieCatégorie de clients
Customer category
PriceGroupKundengruppePreis.KundPreis_Bezeichnungstring,40PreisgruppePreisgruppeGroupe de prix
Price groupe
EnterpriseKonzern.Konz_Bezeichnungstring,40Kette / KonzernKette / KonzernChaîne / groupe
Chain / Enterprise
Quantity_unit_30


Code Block
languagesql
title
Quantity_unit_30
collapsetrue
SELECT SUM ( Bewegung.Bew_Menge ) 
  FROM VinX.Bewegung 
 WHERE Bewegung.Bew_Datum
integerMonat der Lieferung
 >= ( CURRENT DATE - 30 ) 
   AND Bewegung.Bew_ArtikelID = ArticleId 
   AND Bewegung.Bew_AdresseID = AddressId 
   AND Bewegung.Bew_Vorgang = (0-2) 
   AND Bewegung.Bew_Anrechenbar IN (0,3) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0


numericMenge Stück/Flasche letzte 30 TageMenge AbfüllungQuantité ConditionnementQuantità ImbottigliamentoQuantity Filling
Quantity_unit_90


Code Block
languagesql
title
Quantity_unit_90
collapsetrue
SELECT SUM ( Bewegung.Bew_Menge ) 
  FROM VinX.Bewegung 
 WHERE Bewegung.Bew_Datum
integerJahr der LieferungBilling_no
 >= ( CURRENT DATE - 90 ) 
   AND Bewegung.Bew_ArtikelID = ArticleId 
   AND Bewegung.Bew_AdresseID = AddressId 
   AND Bewegung.Bew_Vorgang = (0-2) 
   AND Bewegung.Bew_Anrechenbar IN (0,3) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0



Menge Stück/Flasche letzte 90 TageMenge AbfüllungQuantité ConditionnementQuantità ImbottigliamentoQuantity Filling
Quantity_unit_180


Code Block
languagesql
titleBerechnung Billing_noQuantity_unit_180
collapsetrue
IF NOTSELECT SUM ( Bewegung.Bew_Menge ) 
  FROM VinX.Bewegung 
 WHERE Bewegung.Bew_Datum >= ( CURRENT DATE - 180 ) 
   AND Bewegung.Bew_ArtikelID = ArticleId 
   AND Bewegung.Bew_AbgerechnetAm IS NULL THEN Beleg.Bel_BelegNr ENDIF
Rechnungs-Nr.
Billing_dateBewegung.Bew_AbgerechnetAmdateRechnungsdatum gemäss Datum der Rechnung
AdresseID = AddressId 
   AND Bewegung.Bew_Vorgang = (0-2) 
   AND Bewegung.Bew_Anrechenbar IN (0,3) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0



Menge Stück/Flasche letzte 180 TageMenge AbfüllungQuantité ConditionnementQuantità ImbottigliamentoQuantity Filling
Quantity_unit_365


Code Block
languagesql
title
Quantity_unit_365
collapsetrue
MONTH Bewegung.Bew_AbgerechnetAm
integerMonat der Rechnung
SELECT SUM ( Bewegung.Bew_Menge ) 
  FROM VinX.Bewegung 
 WHERE Bewegung.Bew_Datum >= ( CURRENT DATE - 365 ) 
   AND Bewegung.Bew_ArtikelID = ArticleId 
   AND Bewegung.Bew_AdresseID = AddressId 
   AND Bewegung.Bew_Vorgang = (0-2) 
   AND Bewegung.Bew_Anrechenbar IN (0,3) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0



Menge Stück/Flasche letzte 365 TageMenge AbfüllungQuantité ConditionnementQuantità ImbottigliamentoQuantity Filling
Quantity_unit_730


Code Block
languagesql
title
Quantity_unit_730
collapsetrue
SELECT SUM ( Bewegung.Bew_Menge ) 
  FROM VinX.Bewegung 
 WHERE Bewegung.Bew_Datum >= ( CURRENT DATE - 730 ) 
   AND Bewegung.Bew_ArtikelID = ArticleId 
   AND Bewegung.Bew_AdresseID = AddressId 
   AND Bewegung.Bew_
integerJahr der Rechnung
Quantity_unitBewegung.Bew_MengenumericMenge Stück/Flasche
Quantity_packageBewegung.Bew_MengeGGnumericMenge Grossgebinde
Quantity_litre
Vorgang = (0-2) 
   AND Bewegung.Bew_Anrechenbar IN (0,3) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0



Menge Stück/Flasche letzte 730 TageMenge AbfüllungQuantité ConditionnementQuantità ImbottigliamentoQuantity Filling
Selling_amount_30


Code Block
languagesql
titleSelling_amount_30
collapsetrue
SELECT SUM ( Bewegung.Bew_Nettoerloes ) 
  FROM VinX.Bewegung 
 WHERE Bewegung.Bew_Datum >= ( CURRENT DATE - 30 ) 
   AND Bewegung.Bew_ArtikelID = ArticleId 
   AND Bewegung.Bew_AdresseID = AddressId 
   AND Bewegung.Bew_Vorgang = (0-2) 
   AND Bewegung.Bew_Anrechenbar IN (0,2) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0


numericGesamtbetrag Verkauf letzte 30 TageUmsatzChiffre d'affairesFatturatoTurnover
Selling_amount_90Quantity_free


Code Block
languagesql
titleBerechnung Quantity_litreSelling_amount_90
collapsetrue
Quantity_unit * ( Unit_size_cl / 100 )
numericMenge in Liter
SELECT SUM ( Bewegung.Bew_Nettoerloes ) 
  FROM VinX.Bewegung 
 WHERE Bewegung.Bew_Datum >= ( CURRENT DATE - 90 ) 
   AND Bewegung.Bew_ArtikelID = ArticleId 
   AND Bewegung.Bew_AdresseID = AddressId 
   AND Bewegung.Bew_Vorgang = (0-2) 
   AND Bewegung.Bew_Anrechenbar IN (0,2) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0


numericGesamtbetrag Verkauf letzte 90 TageUmsatzChiffre d'affairesFatturatoTurnover
Selling_amount_180Purchase_value


Code Block
languagesql
titleBerechnung Quantity_freeSelling_amount_180
collapsetrue
if Statistic_relevance = 3 then Quantity_unit
numericMenge Gratisware
ProcessBewegung.Bew_Vorganginteger

ist immer -2 = Warenausgang

Selling_priceBewegung.Bew_PreisnumericVerkaufspreis
Selling_amountBewegung.Bew_NettoerloesnumericGesamtbetrag Verkauf
Valuation_price_at_saleBewegung.Bew_EinstandspreisnumericBewertungspreis zum Zeitpunkt des Verkaufs
Valuation_price_currentArtikel.Art_LagerPreisnumericAktueller Bewertungspreis gemäss Artikel
Purchase_priceEKPreis.EK_EinstandspreisnumericAktueller Einstandspreis gemäss gültigem Einkaufspreis zum Artikel
SELECT SUM ( Bewegung.Bew_Nettoerloes ) 
  FROM VinX.Bewegung 
 WHERE Bewegung.Bew_Datum >= ( CURRENT DATE - 180 ) 
   AND Bewegung.Bew_ArtikelID = ArticleId 
   AND Bewegung.Bew_AdresseID = AddressId 
   AND Bewegung.Bew_Vorgang = (0-2) 
   AND Bewegung.Bew_Anrechenbar IN (0,2) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0


numericGesamtbetrag Verkauf letzte 180 TageUmsatzChiffre d'affairesFatturatoTurnover
Selling_amount_365


Code Block
languagesql
titleSelling_amount_365
collapsetrue
SELECT SUM ( Bewegung.Bew_Nettoerloes ) 
  FROM VinX.Bewegung 
 WHERE Bewegung.Bew_Datum >= ( CURRENT DATE - 365 ) 
   AND Bewegung.Bew_ArtikelID = ArticleId 
   AND Bewegung.Bew_AdresseID = AddressId 
   AND Bewegung.Bew_Vorgang = (0-2) 
   AND Bewegung.Bew_Anrechenbar IN (0,2) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0


numericGesamtbetrag Verkauf letzte 365 TageUmsatzChiffre d'affairesFatturatoTurnover
Selling_amount_730


Code Block
languagesql
titleSelling_amount_730
collapsetrue
SELECT SUM ( Bewegung.Bew_Nettoerloes ) 
  FROM VinX.Bewegung 
 WHERE Bewegung.Bew_Datum >= ( CURRENT DATE - 730 ) 
   AND Bewegung.Bew_ArtikelID = ArticleId 
   AND Bewegung.Bew_AdresseID = AddressId 
   AND Bewegung.Bew_Vorgang = (0-2) 
   AND Bewegung.Bew_Anrechenbar IN (0,2) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0


numericGesamtbetrag Verkauf letzte 730 TageUmsatzChiffre d'affairesFatturatoTurnover
Purchase_value_30


Code Block
languagesql
titlePurchase_value_30
collapsetrue
SELECT SUM ( Bewegung.Bew_Menge * Bewegung.Bew_Einstandspreis ) 
  FROM VinX.Bewegung 
 WHERE Bewegung.Bew_Datum >= ( CURRENT DATE - 30 ) 
   AND Bewegung.Bew_ArtikelID = ArticleId 
   AND Bewegung.Bew_AdresseID = AddressId 
   AND Bewegung.Bew_Vorgang = (0-2) 
   AND Bewegung.Bew_Anrechenbar IN (0,2,3) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0


numeric

Einkaufswert letzte 30 Tage


EinkaufswertValeur d'achatValore di acquistoPurchase value
Purchase_value_90


Code Block
languagesql
titlePurchase_value_90
collapsetrue
SELECT SUM ( Bewegung.Bew_Menge * Bewegung.Bew_Einstandspreis ) 
  FROM VinX.Bewegung 
 WHERE Bewegung.Bew_Datum >= ( CURRENT DATE - 90 ) 
   AND Bewegung.Bew_ArtikelID = ArticleId 
   AND Bewegung.Bew_AdresseID = AddressId 
   AND Bewegung.Bew_Vorgang = (0-2) 
   AND Bewegung.Bew_Anrechenbar IN (0,2,3) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0


numeric

Einkaufswert letzte 90 Tage


EinkaufswertValeur d'achatValore di acquistoPurchase value
Purchase_value_180


Code Block
languagesql
titleBerechnung Purchase_value_180
collapsetrue
Quantity_unit * ( IsNull
   SELECT SUM ( Bewegung.Bew_Menge * Bewegung.Bew_Einstandspreis ) 
  FROM VinX.Bewegung 
 WHERE Bewegung.Bew_Datum >= ( CURRENT DATE - 180 ) 
   AND Bewegung.Bew_ArtikelID = ArticleId 
   AND Bewegung.Bew_AdresseID (= IsNullAddressId 
   AND Bewegung.Bew_Vorgang = (0-2) 
   AND Bewegung.Bew_Anrechenbar IN (0,2,3) 
   (AND IsNull( Valuation_price_at_sale, Purchase_priceBewegung.Bew_GegenBewegungID,0) = 0


numeric

Einkaufswert letzte 180 Tage


EinkaufswertValeur d'achatValore di acquistoPurchase value
Purchase_value_365


Code Block
languagesql
titlePurchase_value_365
collapsetrue
SELECT SUM ( Bewegung.Bew_Menge * Bewegung.Bew_Einstandspreis ) 
  FROM VinX.Bewegung 
 WHERE Bewegung.Bew_Datum >= ( CURRENT DATE - 365 ) 
   AND Bewegung.Bew_ArtikelID = ArticleId 
   AND Bewegung.Bew_AdresseID = AddressId 
   AND Bewegung.Bew_Vorgang = (0-2) 
   AND Bewegung.Bew_Anrechenbar IN (0,2,3) 
   AND IsNull(Bewegung.Bew_GegenBewegungID, Valuation_price_current
  0) = 0


numeric

Einkaufswert letzte 365 Tage


EinkaufswertValeur d'achatValore di acquistoPurchase value
Purchase_value_730


Code Block
languagesql
titlePurchase_value_720
collapsetrue
SELECT SUM ( Bewegung.Bew_Menge * Bewegung.Bew_Einstandspreis ) 
  FROM VinX.Bewegung 
 WHERE Bewegung.Bew_Datum >= ( CURRENT DATE - 730 ), 0 
   AND Bewegung.Bew_ArtikelID = ArticleId 
   AND Bewegung.Bew_AdresseID = AddressId 
   AND Bewegung.Bew_Vorgang = (0-2) 
   AND Bewegung.Bew_Anrechenbar IN (0,2,3) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0


numeric

Einkaufswert zu

  • Valuation_price_at_sale
  • default Purchase_price
  • default Valuation_price_current
  • default 0

    letzte 730 Tage


    EinkaufswertValeur d'achatValore di acquistoPurchase value

    Profit_margin_30

    Profit_margin_90

    Profit_margin_180

    Profit_margin_365

    Profit_margin_730


    Code Block
    languagesql
    titleBerechnung vf_statistics.Profit_margin
    collapsetrue
    Profit_margin_30  = Selling_amount_30  - Purchase_value_30, 
    Profit_margin_90  = Selling_amount_90  - Purchase_value_90, 
    Profit_margin_180 = Selling_amount_180 - Purchase_value_180,
    Profit_margin_365 = Selling_amount_365 - Purchase_value_365,
    Profit_margin_730 = Selling_amount_730 - Purchase_value_730,


    numeric

    Deckungsbeitrag / Marge des Verkaufs in CHF

    letzte 30 Tage

    letzte 90 Tage

    letzte 180 Tage

    letzte 365 Tage

    letzte 730 Tage


    DB in CHFMarge en CHFMargine in CHFMargin in CHF

    Profit_margin_percentage_30

    Profit_margin_percentage_90

    Profit_margin_percentage_180

    Profit_margin_percentage_365

    Profit_margin_percentage_730




    Code Block
    languagesql
    titleBerechnung vf_statistics.Profit_margin_percentage
    collapsetrue
    (ifProfit_margin_percentage_30=(IF (Selling_amount_30 <> 0) THEN (Profit_margin_30 / Selling_amount_30 ) ELSE 0 ENDIF),
    Profit_margin_percentage_90=(IF (Selling_amount_90 <> 0) THEN (Profit_margin_90 / Selling_amount_90 ) ELSE 0 ENDIF),
    Profit_margin_percentage_180=(IF (Selling_amount_180 <> 0) THEN (Profit_margin_180 / Selling_amount_180 ) ELSE 0 ENDIF),
    Profit_margin_percentage_365=(IF (Selling_amount_365 <> 0) thenTHEN (Profit_margin_365 / Selling_amount_365 ) ELSE 0 ENDIF),
    Profit_margin_percentage_730=(IF (Selling_amount_730 ) else<> 0) THEN (Profit_margin_730 / Selling_amount_730 ) ELSE 0 endifENDIF)


    numeric

    Deckungsbeitrag / Marge des Verkaufs in Prozent %

    letzte 30 Tage

    letzte 90 Tage

    letzte 180 Tage

    letzte 365 Tage

    letzte 730 Tage

    DB in %Marge en %Margin in %Margin in %

    Filter


    DBViewValue
    whereBewegung.Bew_VorgangProcess-2
    andBewegung.Bew_AdresseIDAddressIdis not null
    andBewegung.Bew_GegenBewegungId-is null
    andBewegung.Bew_Datum
    CURRENT DATE - 730

    Group by

    ArticleId
    AddressId

    Order by

    AddressId ASC
    ArticleId ASC

    Anhang

    Modellerweiterung ViewVinX_mfstatitics mit Definition für View vf_statistics

    ...