Benutzer mit den meisten Antworten
SQL Berechnete Spalte einfügen

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
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äglichhttp://olafhelper.over-blog.de
- Als Antwort markiert Andreas_Mueller Montag, 28. September 2009 08:13
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äglichhttp://olafhelper.over-blog.de
- Als Antwort markiert Andreas_Mueller Montag, 28. September 2009 08:13