I am currently performing a query and I have the following result
As I say in the image, what I want is that the data I am requesting is shown in all the records, but I cannot find the way. Below I show the SQL
:
DECLARE @Fecha DATE ='2020-03-11'
DECLARE @FechaInicial DATETIME = dbo.fnConvertirFechaDatetime(@Fecha,'I'),
@FechaFinal DATETIME = dbo.fnConvertirFechaDatetime(@Fecha,'F')
SELECT
RazonSocial,
Nit,
IdComputador,
FechaComprobante = CONVERT(VARCHAR(10),FechaComprobante,111),
NumeroInicialTransacciones = MIN(Numerofactura),
NumeroFinalTransacciones = MAX(Numerofactura),
CodigoCuenta,
Descripcion,
SerialComputador,
CodigoIPS,
NombreIPS,
Usuario,
NombreUsuario,
NumeroRegistroRealizados = COUNT(DISTINCT Numerofactura),
VentaEfectivo = SUM(VentaEfectivo),
VentaCredito = SUM(VentaCredito),
ValorTotalRegistrado = SUM(ValorTotalRegistrado),
Exentas = SUM(Exentas),
Excluidas = SUM(Excluidas),
Iva = SUM(Iva),
Descuento = SUM(Descuento),
Letra = SUM(Letra),
NotaDebito = SUM(NotaDebito),
NotaCredito = SUM(NotaCredito),
Abono = SUM(Abono),
Deposito = SUM(Deposito),
Subtotal = SUM(Subtotal)
FROM (
SELECT
RazonSocial = seriales.r_social,
Nit = seriales.nit,
IdComputador = usuario.IdComputadorAsignado,
FechaComprobante = CONVERT(VARCHAR(10),@Fecha,111),
Numerofactura = (sis_maes.prefijo+sis_maes.NumeroFactura),
CodigoCuenta = cuentasUFView.cuenta,
Descripcion = cuentascont_zeus.descripcion,
SerialComputador = usuario.SerialComputador,
CodigoIPS = puntoAtencion.codigo,
NombreIPS = puntoAtencion.nombre,
Usuario = usuario.usuario,
NombreUsuario = usuario.nombre,
VentaEfectivo = ISNULL((CASE WHEN contratos.FormasDePago='CD' THEN sis_deta.total ELSE 0 END),0),
VentaCredito = ISNULL((CASE WHEN contratos.FormasDePago='CR' THEN sis_deta.total ELSE 0 END),0),
ValorTotalRegistrado = ISNULL(sis_deta.total,0),
Exentas = 0,
Excluidas = 0,
Iva = ISNULL(sis_deta.ValorIva,0),
Descuento = 0,
Letra = 0,
NotaDebito = 0,
NotaCredito = 0,
Abono = 0,
Deposito = 0,
Subtotal = ISNULL(sis_deta.total+sis_deta.ValorIva,0)
FROM sis_maes
INNER JOIN seriales ON seriales.id = sis_maes.id_sede
INNER JOIN usuario ON usuario.cedula = sis_maes.cod_usuario
INNER JOIN sis_deta ON sis_deta.estudio = sis_maes.con_estudio
INNER JOIN cuentasUFView ON cuentasUFView.id_ufc = sis_deta.id_cuenta
INNER JOIN cuentascont_zeus ON cuentascont_zeus.cuenta = cuentasUFView.cuenta COLLATE DATABASE_DEFAULT
INNER JOIN puntoAtencion ON puntoAtencion.id = sis_maes.puntoAtencion
INNER JOIN contratos ON contratos.codigo = sis_maes.contrato
WHERE
sis_maes.nro_factura > 0 AND
sis_maes.estado='C' AND
contratos.tipo_contrato<>1 AND
sis_maes.fecha_egreso BETWEEN @FechaInicial AND @FechaFinal
UNION
SELECT
RazonSocial = seriales.r_social,
Nit = seriales.nit,
IdComputador = usuario.IdComputadorAsignado,
FechaComprobante = CONVERT(VARCHAR(10),@Fecha,111),
NumeroFactura = (pagos.prefijo+pagos.NumeroFactura),
CodigoCuenta = sis_tipo.cuenta,
Descripcion = cuentascont_zeus.descripcion,
SerialComputador = usuario.SerialComputador,
CodigoIPS = puntoAtencion.codigo,
NombreIPS = puntoAtencion.nombre,
Usuario = usuario.usuario,
NombreUsuario = usuario.nombre,
VentaEfectivo = ISNULL(pagos.valor,0),
VentaCredito = 0,
ValorTotalRegistrado = 0,
Exentas = 0,
Excluidas = 0,
Iva = 0,
Descuento = 0,
Letra = 0,
NotaDebito = 0,
NotaCredito = 0,
Abono = 0,
Deposito = 0,
Subtotal = ISNULL(pagos.valor,0)
FROM sis_maes
INNER JOIN seriales ON seriales.id = sis_maes.id_sede
INNER JOIN usuario ON usuario.cedula = sis_maes.cod_usuario
INNER JOIN puntoAtencion ON puntoAtencion.id = sis_maes.puntoAtencion
INNER JOIN pagos ON pagos.con_estudio = sis_maes.con_estudio
INNER JOIN sis_tipo ON sis_tipo.id = pagos.fuente
INNER JOIN cuentascont_zeus ON cuentascont_zeus.cuenta = sis_tipo.cuenta COLLATE DATABASE_DEFAULT
WHERE
pagos.NumeroFactura IS NOT NULL AND
pagos.activo = 1 AND
pagos.fecha BETWEEN @FechaInicial AND @FechaFinal
) Resolucion
GROUP BY Resolucion.RazonSocial, Resolucion.Nit, Resolucion.IdComputador, Resolucion.FechaComprobante, Resolucion.CodigoCuenta, Resolucion.Descripcion,
Resolucion.SerialComputador, Resolucion.CodigoIPS, Resolucion.NombreIPS, Resolucion.Usuario, Resolucion.NombreUsuario
ORDER BY RazonSocial, NombreUsuario, CodigoIPS, CodigoCuenta
You are grouping by
CodigoCuenta
andDescripcion
but those columns have distinct values. Maybe it can happen with other columns as well.Here I leave an example of how to keep the different values, but get maximum and minimum of certain columns. Of course, it all depends on the rules of your information to group.