SQL Server - Suma de columnas

 
Vista:

Suma de columnas

Publicado por Roberto (1 intervención) el 22/09/2018 18:36:46
Buenas, tengo la sig. consulta para realizar una suma total de diferentes columnas de una tabla, filtrando el resultado por la fecha que coloque en la variable @textobuscar

1
2
3
4
5
6
7
8
9
10
ALTER proc [dbo].[spcargar_caja]
@textobuscar varchar(50)
as
SELECT dbo.identificadores.denominacion,
sum(dbo.caja.efectivo+dbo.caja.tarjetas+dbo.caja.cheques+dbo.caja.saldo_inicial+dbo.caja.cobrado) as total,
sum(saldo_inicial) as total_pendiente
FROM   dbo.identificadores INNER JOIN dbo.caja ON dbo.identificadores.identificador = dbo.caja.identificador
group by dbo.identificadores.identificador, dbo.identificadores.denominacion, dbo.caja.fecha
having dbo.caja.fecha<@textobuscar
order by dbo.identificadores.identificador asc

La suma funciona bien, el problema que tengo es que la agrupacion la realiza fecha por fecha, lo que necesito es que me resuma todo en una fila de la sig manera:
ej:

denominacion total total_pendiente
Ingresos 2000 520
Egresos 400 0

actualmente lo hace de esta manera, me devuelve la suma pero fecha por fecha ej:

denominacion total total_pendiente
Ingresos 1200 500
Ingresos 800 20
Egresos 300 0
Egresos 100 0

muchas gracias de antemano
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

Suma de columnas

Publicado por Isaias (4558 intervenciones) el 06/10/2018 02:22:08
Hola

¿Porque tu GROUP BY trae 3 columnas, si solo en el SELECT tienes una sola columna dbo.identificadores.denominacion?

group by dbo.identificadores.identificador, dbo.identificadores.denominacion, dbo.caja.fecha
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
Imágen de perfil de Plutarco
Val: 122
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Suma de columnas

Publicado por Plutarco (46 intervenciones) el 10/10/2018 19:08:08
Hola buen día

Estás un poco confundido en el uso de WHERE y HAVING, verás

Así como la cláusula "where" permite seleccionar (o rechazar) registros individuales; la cláusula "having" permite seleccionar (o rechazar) un grupo de registros.

Se utiliza "having", seguido de la condición de búsqueda, para seleccionar ciertas filas retornadas por la cláusula "group by"

En algunos casos es posible confundir las cláusulas "where" y "having"

Revisemos este ejemplo:

select editorial, count(*) from libros
where editorial<>'Planeta'
group by editorial

select editorial, count(*) from libros
group by editorial
having editorial<>'Planeta'

Ambas devuelven el mismo resultado, pero son diferentes. La primera, selecciona todos los registros rechazando los de editorial "Planeta" y luego los agrupa para contarlos. La segunda, selecciona todos los registros, los agrupa para contarlos y finalmente rechaza fila con la cuenta correspondiente a la editorial "Planeta".

No debemos confundir la cláusula "where" con la cláusula "having"; la primera establece condiciones para la selección de registros de un "select"; la segunda establece condiciones para la selección de registros de una salida "group by"

Espero que te haya servido el comentario

Salud2
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