Auswertung von Kassendaten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Auswertung von Kassendaten

    Hallo zusammen,

    ich versuche mal, meine bisherigen Überlegungen möglichst klar zu formulieren:

    Wir haben eine MS SQL Datenbank, in der sich Daten eines Kassensystems befinden. Unter anderem gibt es Tabellen, in denen jeder Kassenbon eines Tages festgehalten wird. So einen Bon kennt wohl jeder von seinem Supermarkt um die Ecke Zur Abbildung eines Bons existieren folgende Tabellen:

    Tabelle bon:
    Code:
    Spalte id (INT) (IDENTITY)
    Spalte bonnr (INT) 
    Spalte bondatum (DATETIME)
    Tablle bon_verkauf:
    Code:
    Spalte id (INT) (IDENTITY)
    Spalte bon_id (INT) (FK => bon.id)
    Spalte artnummer (INT)
    Spalte menge (INT)
    Tablle bon_zahlung:
    Code:
    Spalte id (INT) (IDENTITY)
    Spalte bon_id (INT) (FK => bon.id)
    Spalte finanzweg (INT)
    Spalte betrag (FLOAT)
    Die Beziehungen zwischen der Tabelle bon und den "Untertabellen" bon_verkauf und bon_zahlung sind jeweils 1:n, d.h. ein Bon kann beliebig viele Verkaufs- und Zahlungsvorgänge enthalten.

    Ich habe auf dem SQL Server eine gespeicherte Prozedur angelegt, um die Boninformationen aus der Datenbank zu holen:

    Code:
    CREATE PROCEDURE sp_bons_holen 
    @von DATETIME,
    @bis DATETIME
    AS
    SELECT * FROM bon
    LEFT JOIN bon_verkauf ON (bon_verkauf.bon_id = bon.id)
    LEFT JOIN bon_zahlung ON (bon_zahlung.bon_id = bon.id)
    WHERE bon.datum >= @von AND bon.datum <= @bis
    Mittels eines PHP Scripts führe ich die Prozedur aus und lese die Ergebnismenge zeilenweise in ein Array:

    PHP-Code:
    $query "EXECUTE sp_bons_holen '01.01.2005', '02.01.2005'";
    $result mssql_query($query);
    $num mssql_num_rows($result);
    $cur 1;
    while (
    $cur <= $num) {
      
    $row mssql_fetch_array($result);
      
    $cur++;

    Ich habe nun prinzipiell das Problem, dass ich nicht wirklich weiß, wie ich die Daten sinnvoll aus dem Array holen und darstellen kann. Ich brauche ja im Grunde mehrere verschachtelte Darstellungsebenen, d.h. ich brauche für jeden Bon einen Kopfteil mit Datum und Bonnummer, darunter einen Block mit den einzelnen Vorgängen.

    Außerdem bin ich nicht sicher, ob die gewählte Datenbankstruktur wirklich sinnvoll ist, oder ob es vielleicht einen besseren Weg gibt. Das o.g. Beispiel is stark vereinfacht, die einzelnen Tabellen haben natürlich viele weitere Spalten, und es gibt neben bon_verkauf und bon_zahlung weitere Tabellen, die aber alle nach dem gleichen Muster aufgebaut sind.

    Bin für jeden Tipp und jede Idee dankbar.
Lädt...
X