Statistische Ermittlungen [ERLEDIGT]

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21248
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 211 Mal
Danksagung erhalten: 71 Mal

Statistische Ermittlungen [ERLEDIGT]

Beitrag von Manfred »

Moin,

ich will statistische Zahlen erzeugen. Ich weiß es gibt eine Methode das was ich machen muß zu optimieren, aber ich finde keinen vernünftigen Anfang. Vor allen Dingen überlege ich, wie ich mein Problem hier so darstelle, dass es keine Missverständnisse gibt.

1) Ich muß bei jedem Datensatz unterscheiden
a) steht ein Verkaufspreis drin ja/nein
b) ist es verkauft ja/nein
c) ist es Schrott ja/nein
d) ist es Lagerware, oder wird es im Verkaufsraum aufbewahrt

2) zu jedem Buchstaben ( 1) a-d ) muß ich folgendes unterscheiden
a) mehrwertsteuerpflichtig ja/nein
b) es muß dann die gesamte Stückzahl aufaddiert werden
und es muß die jeweilige Stückzahl der einzelnen Optionen aufsummiert werden, also z.B.
Gesamtstückzahl Schrott
Stückzahl Schrott Mwst
Stückzahl Schrott ohne Mwst
Gesamtstückzahl Verkauf
Stückzahl Verkauf mit Mwst
Stückzahl Verkauf ohne Mwst

usw.

grob gesehen, geht natürlich noch feiner runter.

Wenn es verkauft ist, kann es kein Schrott sein.
Wenn kein Preis drinsteht, kann es nicht verkauft sein, aber Schrott, aber auch kein Lagerbestand.

Ich kann jetzt natürlich für alles eine If Endif Abfrage machen, aber es wäre schon schön, wenn man auf der höchsten Ebene anfängt, mit der Option die für die Mehrheit gilt und dann nach und nach innerhalb der Abfrage sich runterarbeitet.
Ich denke Mal, es ist so wie die Zusammenfassung einer Formel a² + 2ab + b² = (a+b)²

Aber ich finde keinen Anfang. Für Mathematiker und Logiker sicherlich einfach, aber mir brummt im Moment der Kopf.
Ich hoffe ich trete hier mal wieder einen Glaubenskrieg los.... :badgrin:
Zuletzt geändert von Manfred am Di, 25. Nov 2008 11:16, insgesamt 1-mal geändert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16586
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 116 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Statistische Ermittlungen

Beitrag von Martin Altmann »

Hmm,
meine Antwort kennst Du ja: Alles in ein Array und entsprechend aufsummieren :D
Du hast ja vier Oberkategorien, die in zwei Arten aufsummiert werden sollen (mit bzw. ohne MwSt).
Also nimmst Du einfach 8 Spalten und fertig.
Willst Du (weil Du ja das "für jeden Datensatz" so betonst) das ganze jedoch nicht komplett aufsummieren, sondern nur innerhalb eines Artikels (oder einer Artikelgruppe, oder was auch immer), so nimmst Du einfach noch eine neunte Spalte dazu und schreibst dort den Schlüsel rein, innerhalb dessen Du aufaddierst (also immer in Deinem Array nach dem Schlüssel suchen, wenn gefunden, die Werte in die entsprechend passenden Spalten addieren, sonst einen neuen Eintrag anfügen).

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15710
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 73 Mal
Danksagung erhalten: 38 Mal
Kontaktdaten:

Re: Statistische Ermittlungen

Beitrag von brandelh »

Hi Manfred,

vielleicht habe ich dich ja falsch verstanden, aber ich sehe hier kein statistisches Problem, sondern nur Merkmale einer normalen Lagerhaltung. Bei jedem Artikel sollte im Datensatz der Preis ohne Mwst, der Mwst-Satz, die Artikel-Anzahl, der Artikel-Lagerort etc. enthalten sein.
Wenn deine Lagerhaltung auf einzelne Artikel (z.B. über Seriennummer) eingeht, kann man auch ein
Ein Feld "zerstört", "Schrott", "abgelaufen" etc. vorsehen.

Bei der Ausgabe würde ich nachfragen wie man das bisher auf Papier dargestellt hat und dieses - eventuell optimiert - nachbilden. Dann kann der Anwender das Ergebnis auch leichter nachvollziehen.
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21248
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 211 Mal
Danksagung erhalten: 71 Mal

Re: Statistische Ermittlungen

Beitrag von Manfred »

OK,

so kommen wir weiter. Ich habe mal wieder den 1.Durchgang frei nach Schnauze erklärt und stelle jetzt bei euren Antworten fest, dass ich es anders angehen muß.

Also es sieht folgendermaßen aus. Ich habe 2 Datenbanken-> 1x Vo und 1x Schrott. Beide sind identisch und werden über ein entsprechendes Objekt verwaltet. Die Objekte unterscheiden sich eigentlich nur darin, dass sie den jeweiligen Namen der entsprechenden DB wissen.

Wenn ich jetzt die Ermittlung der Stückzahlen aufrufe, dann geschieht das über eine Methode, der es total egal ist, welche Db jetzt dahinter steckt von den beiden, weil die Feldbezeichnungen und alles rundherum identisch sind. Sie unterscheiden sich nur darin, dass die Feldinhalte anders aussehen können.

Es dreht sich hier auch nur jedesmal um 1 Datensatz, der die Daten liefert. Es ist kein Lauf, der eine DB komplett oder in Teilen durchläuft. Ich finde einen Satz und prüfe dann die Bedingungen. Es kann aber eben sein, dass es einmal Schrott ist, Lagerbestand, verkauft, nicht verkauft usw. Es soll nur bei jedem Vorgang der richtige Zähler erhöht werden.

Also so z.B.

Code: Alles auswählen

if db->schrott
   schrott++
   if mwst
      schrottneu++
   else
      schrottgbr++
   endif
endif
Diese Abfrage muß jedesmal getätigt werden, weil es ja sein kann, dass es Schrott ist

Code: Alles auswählen

if db->preisist > 0
   vomitpreis++
   if mwst
      vomitpreisneu++
   else
      vomitpreisgbr++
   endif
endif
auch das müßte immer geprüft werden

Code: Alles auswählen

if db->verkauft
   vogesamtverkauft++
   if mwst
      voverkauftneu++
   else
      voverkauftgbr++
   endif
endif
das oben würde z.B. nicht bei Schrott gelten, weil es beide Zustände nie erreichen kann/darf.
Wobei das jetzt nur grob gezeigt wird. Es muß dann die Alternative (else) zu if auch gleich berücksichtigt und gezählt werden.
Also, wenn preisist = 0 ist, dann geht es in eine andere Variable rein.

Theoretisch müßte man alle Varianten mit If und Enidf abfragen und dann zusammenfassen, was mehrmals vorkommt, oder sehe ich dann falsch. Aber gibt es da nicht ein Verfahren, mit dem man direkt am Anfang sowas machen kann? Oder soll ich es lieber lassen und den langen leidigen Weg gehen?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15710
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 73 Mal
Danksagung erhalten: 38 Mal
Kontaktdaten:

Re: Statistische Ermittlungen

Beitrag von brandelh »

Hi Manfred,

wenn sich einzelne Möglichkeiten gegenseitig aussschließen, nehme ich gerne do case (if elseif else - geht auch). Das spart beim Durchlauf nicht nur unnötige Abfragen, sondern gibt auch die Gewissheit, dass unerlaubte andere Teile nicht durchlaufen werden.

Aber wenn du halt x-Bedingungen hast, die geprüft werden müssen, musst du die halt prüfen !
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21248
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 211 Mal
Danksagung erhalten: 71 Mal

Re: Statistische Ermittlungen

Beitrag von Manfred »

Hi Hubert,

verflixt, Deine Case Endcase Abfrage, die vergesse ich immer wieder, obwohl ich die schon einsetze in solchen Problemen. Das könnte mir schon weiterhelfen, bzw. es wesentlich übersichtlicher machen. Aber ich denke einmal Du hast Recht, ich werde den harten Weg gehen müssen und dann mal sehen, ob irgendwas zusammengefasst werden kann.

Danke erstmal bis hierhin.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten