SQL Server - Agregar campo que subtotalice en consulta SQL Server

 
Vista:

Agregar campo que subtotalice en consulta SQL Server

Publicado por Diego (1 intervención) el 16/05/2018 18:16:42
Estimados:
Necesito agregar un campo de subtotal en una consulta SQL. He visto las sentencia with cube y with rollup pero no me sirven, porque agregan un registro, no un campo.
Como ejemplo, tendria lo siguiente
CONCEPTO ... MONTO
c1...100
c2... -75
c3.......5

Lo que necesitaria es una consulta que me generara la siguiente informaciòn:

CONCEPTO...MONTO...SUBTOTAL
c1...100...100
c2... -75...25...esto es 100-75
c3.......5...30...esto es 25+5


Muchas gracias
Saludos
Diego
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Agregar campo que subtotalice en consulta SQL Server

Publicado por Isaias (4558 intervenciones) el 17/05/2018 17:35:40
Veamos si este query te sirve

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
DROP TABLE #MiTabla
CREATE TABLE #MiTabla(
Fecha smalldatetime,
Pedido smallint,
SaldoAnterior smallint,
Ingreso smallint,
Egreso smallint,
Saldo smallint
)
go
 
INSERT INTO #MiTabla VALUES('2013-05-02 02:15:00',899,0,167,0,0)
INSERT INTO #MiTabla VALUES('2013-05-03 16:07:10',900,0,167,0,0)
INSERT INTO #MiTabla VALUES('2013-07-01 13:25:15',901,0,50,0,0)
INSERT INTO #MiTabla VALUES('2013-07-01 22:05:52',902,0,0,140,0)
INSERT INTO #MiTabla VALUES('2014-01-01 23:00:00',500,0,0,1000,0)
-- SS 2012
SELECT
	Fecha,
	ISNULL(
	SUM(ingreso - egreso) OVER(
	ORDER BY Fecha
	ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING
	), 0) AS saldo_anterior,
	ingreso,
	egreso,
	SUM(ingreso - egreso) OVER(
	ORDER BY Fecha
	ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
	) AS saldo
FROM
	#MiTabla
ORDER BY
	Fecha;
GO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Agregar campo que subtotalice en consulta SQL Server

Publicado por William Brito (4 intervenciones) el 31/05/2018 22:01:13
Esta pregunta es vieja pero igual, tratare de ayudar... la soulcion pasa por usar Window Expressions.
Aqui te dejo el ejemplo:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DECLARE @Montos TABLE (
  Concepto	CHAR(2),
  Monto		NUMERIC(8, 2)
);
 
INSERT INTO @Montos(Concepto, Monto) VALUES
('c1', 100),
('c2', -75 ),
('c3', 5);
 
SELECT M.Concepto
		, M.Monto
		, SUM(M.Monto) OVER (ORDER BY M.Concepto) AS Subtotal
FROM @Montos AS M
ORDER BY M.Concepto;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar