{"id":55,"date":"2011-03-19T16:49:55","date_gmt":"2011-03-19T16:49:55","guid":{"rendered":"http:\/\/www.flip-design.de\/?p=55"},"modified":"2011-04-03T16:53:21","modified_gmt":"2011-04-03T16:53:21","slug":"berechnete-spalten","status":"publish","type":"post","link":"https:\/\/www.flip-design.de\/?p=55","title":{"rendered":"Berechnete Spalten"},"content":{"rendered":"<p><a href=\"http:\/\/www.flip-design.de\/wp-content\/uploads\/2011\/04\/calcColumn01.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-57\" title=\"calcColumn01\" src=\"http:\/\/www.flip-design.de\/wp-content\/uploads\/2011\/04\/calcColumn01.png\" alt=\"\" width=\"123\" height=\"72\" \/><\/a>In diesem kleinen Blog-Eintrag geht es um berechnete Spalten um einen Teil der  Business Logik innerhalb des Tabellen-Designs zu verlagern. Typischer Fall ist  die Berechnung von kumulierten Netto und Brutto Werten innerhalb eines  Bestellwesens.<\/p>\n<p>Ausgangslage ist eine Bestelltabelle in der bestellte  Artikel mit einer Menge und einem zugeh\u00f6rigen Preis gespeichert werden. Um  entsprechend den Gesamtpreis zu ermitteln, ben\u00f6tigt man i.d.R. eine Funktion,  Abfrage oder Prozedur. Ziel ist hier das Ergebnis direkt innerhalb der Tabelle  zu speichern. Zus\u00e4tzlich soll auch gleich die Mehrwertsteuer und der Brutto Wert  abgespeichert werden.<\/p>\n<p>Zuerst, um nicht bei einer Mehrwertsteuer \u00c4nderung  das Tabellen Design anzupassen, ben\u00f6tigen wir eine Funktion die uns die  Mehrwertsteuer zur\u00fcckgibt:<br \/>\n<code>CREATE FUNCTION dbo.HoleMehrwertsteuer  ()<br \/>\nRETURNS float<br \/>\nBEGIN<br \/>\nRETURN 19.0<br \/>\nEND<br \/>\nGO<br \/>\n<\/code>Diese  Funktion liefert die Mehrwertssteuer zur\u00fcck.<\/p>\n<p>Nun wird die Tabelle  erstellt mit den Berechneten Spalten:<br \/>\n<code>CREATE TABLE dbo.Bestellungen  (<br \/>\nuid uniqueidentifier default newid() not null primary  key,<br \/>\nartikelname varchar(255) not null,<br \/>\nartikelpreis money not  null,<br \/>\nartikelmenge float not null,<br \/>\n<strong>nettopreis AS (artikelpreis *  artikelmenge)<\/strong>,<br \/>\n<strong>bruttopreis AS ((artikelpreis * artikelmenge) +<br \/>\n((artikelpreis * artikelmenge) *\u00a0 (dbo.HoleMehrwertsteuer() \/ 100  )))<\/strong>,<br \/>\n<strong>mehrwertsteuer AS (artikelpreis * artikelmenge * (dbo.HoleMehrwertsteuer() \/ 100 ))<\/strong><br \/>\n);<br \/>\nGO<br \/>\n<\/code>Erl\u00e4uterung:<\/p>\n<ul>\n<li>nettopreis: Berechnet den Preis anhand der Menge<\/li>\n<li>bruttopreis: Berechnet den Preis anhand der Menge und addiert die MwSt  hinzu<\/li>\n<li>mehrwertsteuer: Gibt die enthaltene Mehrwertsteuer aus<\/li>\n<\/ul>\n<p>Ein paar  Daten:<br \/>\n<code>INSERT INTO dbo.Bestellungen (artikelname, artikelpreis,  artikelmenge)<br \/>\nVALUES<br \/>\n('Hemd', 30.00, 1),<br \/>\n('Jacke',  100.00, 1),<br \/>\n('Hose', 70.00, 2);<br \/>\nGO <\/code><\/p>\n<p>Ergebnis:<br \/>\n<a href=\"http:\/\/www.flip-design.de\/wp-content\/uploads\/2011\/04\/calcColumn02.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-56\" title=\"calcColumn02\" src=\"http:\/\/www.flip-design.de\/wp-content\/uploads\/2011\/04\/calcColumn02-300x50.png\" alt=\"\" width=\"300\" height=\"50\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2011\/04\/calcColumn02-300x50.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2011\/04\/calcColumn02.png 461w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>In wie weit sich das Beispiel in der  Praxis nutzen l\u00e4sst, muss man f\u00fcr sich selber entscheiden. Grunds\u00e4tzlich sollten  Berechnete Spalten nicht aus\u00dfer Acht gelassen werden, denn dadurch kann man sich  doch eine Menge an kleinen &#8222;l\u00e4stigen&#8220; Funktionen und Abfragen sparen kann,  insbesondere wenn diese sehr H\u00e4ufig wiederverwendet werden m\u00fcssen.<\/p>\n<p><strong>Download:<\/strong><\/p>\n<ul>\n<li><a href=\"download\/SQLServer_BerechneteSpalten.pdf\" target=\"_blank\">Download  Script<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>In diesem kleinen Blog-Eintrag geht es um berechnete Spalten um einen Teil der Business Logik innerhalb des Tabellen-Designs zu verlagern. Typischer Fall ist die Berechnung von kumulierten Netto und Brutto Werten innerhalb eines Bestellwesens. Ausgangslage ist eine Bestelltabelle in der &hellip; <a href=\"https:\/\/www.flip-design.de\/?p=55\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[10,3],"tags":[],"_links":{"self":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts\/55"}],"collection":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=55"}],"version-history":[{"count":2,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts\/55\/revisions"}],"predecessor-version":[{"id":59,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts\/55\/revisions\/59"}],"wp:attachment":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=55"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=55"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=55"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}