ilch Forum » Allgemein » Plauder Ecke » Umsätze berechnen

Geschlossen
  1. #1
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    Moin,

    ich habe mal eine ganz außergewöhnliche Frage:

    Ein Teleanbieter hat 12 Artikel, jeder Artikel hat eine eindeutige Artikelnummer. Nun schwirren 15000 Kunden in der Datenbank herum, auf denen wiederrum Artikel verbucht sind. Soweit ist noch alles ganz easy, aber jetzt wird es spannend:

    Jeder Artikel hat ein Feld für das Start- und das Enddatum (berechnet werden Dienste wie Telefon, Internet oder Fernsehen). Ich muss jetzt für 2013 pro Artikel die Umsätze berechnen. Der Clou: Artikel, die vorher gestartet wurden und das Enddatum in 2013 oder später liegt, müssen berücksichtigt werden, ich brauche also die Artikel, die während z.B. Januar 2013 "gültig" waren (gültig = Startdatum vor 31.01.2013 und Enddatum nach 01.01.2013).

    Es ist sehr kompliziert und ich finde gerade keine Lösung dafür - vielleicht hat der ein oder andere mit etwas mehr Berufserfahrung eine hilfreiche Idee für mich zwinker

    Vielen Dank für die Antworten!
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Revolution Hall Of Fame
    Registriert seit
    14.08.2006
    Beiträge
    1.688
    Beitragswertungen
    109 Beitragspunkte
    In welchem Format hast du die Datensätze bzw. womit möchtest du selbige Weiterverarbeiten?

    Wenn ich es richtig verstanden habe
    ein Artikel besteht vereinfacht aus seinem Namen / Artikelnummer und dem Start- / Enddatum

    ein Kunde besteht aus den Kundendaten udn dem Artikel

    Die Laufzeit wurde dem Artikel zugeschrieben und nicht getrennt dem Kunden
    Also jeder Kunde mit dem Artikel "Internet" hat die selbe Laufzeit, wie alle Kunden mit dem Internet Artikel?



    Zuletzt modifiziert von Revolution am 23.01.2014 - 15:00:51
    Kreativ, modern, Conversion und Usability optimiert
    individuelles Webdesign für ein optimales Erscheinungsbild
    404studios
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    und das willst du als SQL?

    Naja zum berechnen der kosten brauchst du sicher eine aggregats funktion

    sum oder ähnliches

    SELECT SUM(...)
    FROM die Entsprechenden tabellen vermutich musst du die über ein join verknüpfen

    WHERE startddatum <= 31.01.2013 AND enddatum >= 01.01.2013


    so grob daraus kannst du den rest ja basteln
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
    Bitte genau lesen, so einfach ist es dann doch nicht

    ((start >= 1.1.2013 AND start < 1.2.2013) OR (end >= 1.1.2013 AND end < 1.2.2013)) //start oder ende im Januar oder beide im Januar
    OR (start < 1.1.2013 AND end >= 1.2.2013) // start vor Januar und ende nach Januar
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Eigentlich reicht doch '(ende > 1.1.2013 AND anfang <= 31.12.2013) or anfang >= 1.1.2013', damit sollten alle Verträge, die im Jahr 2013 gültig werden erfasst werden.
    Da es dann es sich anschließend noch um Laufzeiten innerhalb des Jahres drehen sollte, sind Nachberechnung nötig, die dann meiner Meinung nach besser mit einer Skript/Programmiersprache erfolgen sollten, anstatt das mit plain SQL zu lösen.

    Natürlich kann man auch mit verschiedenen Abfragen jeweils die Verträge bestimmter Laufzeiten einzeln selektieren.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    Puuhhh ... Danke Jungs für die Antworten.

    Tatsächlich ist das ziemliche Fummelarbeit gewesen und kein Statement der Welt hat mich auf das gewünschte Ergebnis gebracht (selbst mit Hilfe des Entwicklers unseres CRM´s lächeln was übrigens auf MSSQL basiert). Um Artikel mit verschiedenen Start- und Enddaten mit einem bestimmten Abschnitt (also Jan 2014) zu markieren, in dem alle Markiert und ausgerechnet werden sollen, die gültig sind in diesem Monat, bedarf es Menschen. Maschiene ist beschränkt und bevor ich solch ein ausgeklüfteltes Statement gebastelt habe, mach ich das doch lieber per Hand.

    Aber danke für die Denkanstöße, das hat mir weitergeholfen!
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    das erscheint mir aber etwas seltsam muss ich sagen^^ ...

    aber wenns nur ne einmalige anfrage ist kann man das schonmal von hand machen zunge
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    Ich hätte es schon gerne per Funktion/Abfrage gemacht, allein weil es bequemer für jeden Artikel ist zwinker Aber du kennst das ja, wenn Chef was haben will, dann am Besten gestern... ich muss mir das mal in ner ruhigen Minute genauer anschauen, für die Zukunft mach ich das sicherlich nicht per Hand.
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
    Mein SQL liefert genau die Artikel in einer Abfrage ohne zusätzliches PHP etc...
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Plauder Ecke

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten