/ / So führen Sie eine Subtraktion in einer gespeicherten Prozedur in SQL Server 2008 R2 durch - SQL-Server, gespeicherte Prozeduren, SQL-Server-2008-r2

Wie Sie eine Subtraktion in einer gespeicherten Prozedur in SQL Server 2008 R2 durchführen - sql-server, stored-procedures, sql-server-2008-r2

Ich bin ein Anfänger, wenn es um gespeicherte Prozeduren geht, die Datenbank meines Jobs ist SQL Server 2008 R2 und ich weiß nicht, wie ich eine einfache Subtraktion von zwei Werten durchführen kann.

Beispielsweise:

Excel-Tabelle:

Bildbeschreibung hier eingeben

In dieser Tabelle ist die dritte Spalte gleich der Subtraktion der ersten Spalte und der zweiten Spalte

In der Spalte einer Tabelle meiner Datenbank befinden sich die erste und die zweite Spalte in einer Spalte:

Tabelle:

Bildbeschreibung hier eingeben

Die dritte Spalte sollte also der Unterschied seinzwischen der ersten und der zweiten Spalte, aber ich muss die Subtraktion der beiden Werte berechnen, ich kann die Werte mit dem Artikel binden, die die gleiche Nummer haben.

Wie kann ich das in einer gespeicherten Prozedur machen? Ich weiß nicht, wie ich das machen soll, indem ich eine Weile mache, Variablen deklariere, all das.

Jede Hilfe wird wirklich dankbar sein, Danke.

Antworten:

4 für die Antwort № 1
Select Articulo
,Col1     = sum(case when Cantidad>0 then Cantidad else 0 end)
,Col2     = sum(case when Cantidad<0 then Cantidad else 0 end)*-1
,Col3     = sum(Cantidad)*-1
From  YourTable
Group By Articulo

Kehrt zurück

Articulo    Col1    Col2    Col3
1003        64000   338464  274464
1004        43200   271921  228721
3002        8411    11082   2671
3007        57600   57238   -362

2 für die Antwort № 2

Sie müssen einen vollständigen Self-Join verwenden

 Select p.canditad Positive, -n.canditad Negative,
p.canditad+n.canditad Difference
From table p          -- <-- p for positive values
full join table n  -- <-- n for negative values
on n.articulo = p.articulo
and p.canditad > 0
and n.canditad < 0