none
SQL Berechnete Spalte einfügen RRS feed

  • Frage

  • Hallo zusammen,

    ich habe eine Frage zu berechneten Spalten.

    Grob die Datenbankstruktur:
    t_Rechnungen beinhaltet Bemerkung;Kundeid;Gesamtbetrag (Darum gehts)
    t_Artikelpositionen beinhaltet fk_Rechnungsid;Artikelids, Artikelpreis etc
    Nun Soll die Spalte Gesamtbetrag in der t_Artikelpositionen nachschauen welche Artikel der Rechnungsid zugeordnet sind. Und den Gesamtbetrag dann in die Spalte Gesamtbetrag schreiben. Bzw. vorher addieren.

    Mein Ansatz für die Spalte Gesamtbetrag:
    Select fk_Rechnungsid, Artikelpreis from t_Artikelpositionen und dann irgendwie Count(artikelpreis as Gesamtbetrag) oder so.

    Kann mir jemand helfen?

    Für Rückfragen stehe ich gerne zur Verfügung.

    Danke.

    Viele Grüße

    Andraes

     
    Samstag, 26. September 2009 10:48

Antworten

  • Hallo Andreas,

    eine berechnende Spalte kann man durchaus anlegen, wobei ich die Konstellation, also Felder aus einer anderen Tabelle als Quelle für eine berechnende Spalte zu verwenden, noch nie ausprobiert habe. Bei jedem Update auf die Positionen müsste die Rechnungstabelle aktualisiert werden.

    Wenn es nur darum geht, die Summe zu einer Rechnung mit zu selektieren, z.B. in einer View, kannst Du es mit einem Sub-Select erledigen.
    Beispiel:

    SELECT RE.*
               ,(SELECT SUM(Artikelpreis)
                 FROM t_Artikelpositionen AS POS
                WHERE RE.Id = POS.fk_Rechnungsid
               ) AS SumPos
    FROM t_Rechnungen AS RE


    Olaf Helper
    -----------

    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    http://olafhelper.over-blog.de

     

    Sonntag, 27. September 2009 10:07

Alle Antworten

  • Hallo Andreas,

    eine berechnende Spalte kann man durchaus anlegen, wobei ich die Konstellation, also Felder aus einer anderen Tabelle als Quelle für eine berechnende Spalte zu verwenden, noch nie ausprobiert habe. Bei jedem Update auf die Positionen müsste die Rechnungstabelle aktualisiert werden.

    Wenn es nur darum geht, die Summe zu einer Rechnung mit zu selektieren, z.B. in einer View, kannst Du es mit einem Sub-Select erledigen.
    Beispiel:

    SELECT RE.*
               ,(SELECT SUM(Artikelpreis)
                 FROM t_Artikelpositionen AS POS
                WHERE RE.Id = POS.fk_Rechnungsid
               ) AS SumPos
    FROM t_Rechnungen AS RE


    Olaf Helper
    -----------

    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    http://olafhelper.over-blog.de

     

    Sonntag, 27. September 2009 10:07
  • Hallo Olaf,

    vielen Dank. Hat mir sehr geholfen.

    Viele Grüße

    Andreas
    Montag, 28. September 2009 08:13