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:
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:
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 № 1Select 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