Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 18 Next »

Auf dieser Seite wird die Standard SQL-View für die Statistik-Abfrage definiert.

Die Abfrage basiert auf der bei Kunden üblich eingesetzten Pivot-View. Es werden aber Fremdschlüssel ausgegeben.

 Content


Anforderungen

Die Anforderungen an statistische Daten sind für den Aussendienst sehr zentral. Im MVP des Aussendienstportals sind verschiedene Perspektiven auf statistische Daten vorgehesen. Diese werden nachfolgend beschrieben.

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

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

→ Drilldown-Funktion auf einzelne Bewegung wünschenswert

SQLView_vf_statistics




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

Performance-Indikator

  • Auf dem System-Dashboard sieht der Aussendienst seine Umsatzentwicklung der letzten 12 Monate pro Monat mit Vorjahresvergleich über all seine Kunden
  • Auf dem Kunden-Dashboard sieht der Aussendienst seine Umsatzentwicklung der letzten 12 Monate pro Monat mit Vorjahresvergleich für den spezifischen Kunden
  • Monate ohne Umsatz sollen erscheinen ohne Umsatzbalken

Verworfen in Phase 1

  • Ein Filter auf der Statistik, mit welchem man zum Beispiel nach Artikeltyp selektionieren kann
  • Ein Auswahlmöglichen, mit welchem man andere Daten anstelle des Umsatzes anzeigen kann (z.B. Menge, Liter, Deckungsbeitrag)

Mockup Performance Indikator

Field Mapping Performance-Indikator

SELECT DISTINCT

View_fieldEntity.attributetypeDescriptionDEFRITEN
AddressIdBewegung.Bew_AdresseIDforeign keyID der Adresse



Delivery_month
vf_performanceindicator.DeliveryMonth
MONTH( Bewegung.Bew_Datum )

Monat vom LieferdatumMonatMoisMeseMonth
Delivery_year
vf_performanceindicator.DeliveryYear
YEAR( Bewegung.Bew_Datum )

Jahr vom LieferdatumJahrAnnéeAnnoYear
Quantity
vf_topsellers.quantity
SUM (IF (Bewegung.Bew_Anrechenbar IN (0,3)) THEN (IsNull(Bewegung.Bew_Menge,0)) ELSE 0 ENDIF)

Summe der MengenMengeQuantitéQuantitàQuantity
Selling_amount
vf_topsellers.selling_amount
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

Group by Klausel

AddressId
DeliveryMonth
DeliveryYear

Order by Klausel

Selling_amount

Topsellers

  • 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

Mockup Topsellers

Field Mapping Topsellers

SELECT DISTINCT

View_fieldEntity.attributetypeDescriptionDEFRITEN
ArticleIdBewegung.Bew_ArtikelIDforeign keyID des Artikels



AddressIdBewegung.Bew_AdresseIDforeign keyID der Adresse



Quantity
vf_topsellers.quantity
SUM (IF (Bewegung.Bew_Anrechenbar IN (0,3)) THEN (IsNull(Bewegung.Bew_Menge,0)) ELSE 0 ENDIF)

Summe der MengenMengeQuantitéQuantitàQuantity
Selling_amount
vf_topsellers.selling_amount
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

Group by Klausel

ArticleId
AddressId

Order by Klausel

Selling_amount

Bezüge

Mockup Bezüge


Field Mapping Sortiment

View_fieldEntity.attributetypeDescriptionDEFRITEN
ArticleIdBewegung.Bew_ArtikelIDforeign keyID des Artikels



AddressIdBewegung.Bew_AdresseIDforeign keyID der Adresse



Quantity_unit_30
Quantity_unit_30
SELECT SUM ( Bewegung.Bew_Menge ) 
  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,3) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0
numericMenge Stück/FlascheMenge AbfüllungQuantité ConditionnementQuantità ImbottigliamentoQuantity Filling
Quantity_unit_90
Quantity_unit_90
SELECT SUM ( Bewegung.Bew_Menge ) 
  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,3) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0






Quantity_unit_180
Quantity_unit_180
SELECT SUM ( Bewegung.Bew_Menge ) 
  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,3) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0






Quantity_unit_365
Quantity_unit_365
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






Quantity_unit_730
Quantity_unit_730
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_Vorgang = (0-2) 
   AND Bewegung.Bew_Anrechenbar IN (0,3) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0






















Selling_amount_30
Selling_amount_30
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 VerkaufUmsatzChiffre d'affairesFatturatoTurnover
Selling_amount_90
Selling_amount_90
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






Selling_amount_180
Selling_amount_180
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






Selling_amount_365
Selling_amount_365
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






Selling_amount_730
Selling_amount_730
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






Purchase_value_30
Purchase_value_30
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 zu

  • Valuation_price_at_sale
  • default Purchase_price
  • default Valuation_price_current
  • default 0


EinkaufswertValeur d'achatValore di acquistoPurchase value
Purchase_value_90
Purchase_value_90
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






Purchase_value_180
Purchase_value_180
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 = AddressId 
   AND Bewegung.Bew_Vorgang = (0-2) 
   AND Bewegung.Bew_Anrechenbar IN (0,2,3) 
   AND IsNull(Bewegung.Bew_GegenBewegungID,0) = 0






Purchase_value_365
Purchase_value_365
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,0) = 0






Purchase_value_720
Purchase_value_720
SELECT SUM ( Bewegung.Bew_Menge * Bewegung.Bew_Einstandspreis ) 
  FROM VinX.Bewegung 
 WHERE Bewegung.Bew_Datum >= ( CURRENT DATE - 720 ) 
   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






Profit_margin
vf_statistics.Profit_margin
Selling_amount - Purchase_value
numericDeckungsbeitrag / Marge des Verkaufs in CHFDB in CHFMarge en CHFMargine in CHFMargin in CHF

Profit_margin_percentage

vf_statistics.Profit_margin_percentage
(if (Selling_amount <> 0) then (Profit_margin / Selling_amount ) else 0 endif)
numericDeckungsbeitrag / Marge des Verkaufs in Prozent %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


Anhang

Modellerweiterung ViewVinX_mfstatitics mit Definition für View vf_statistics

  • No labels