Visual Basic.NET - tengo una tabla de mas de 40 columnas pero quiero agrupar los campos solamente por 2 columnas

 
Vista:
sin imagen de perfil
Val: 22
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

tengo una tabla de mas de 40 columnas pero quiero agrupar los campos solamente por 2 columnas

Publicado por Gerardo (10 intervenciones) el 23/05/2020 18:50:14
Tengo una tabla de mas de 40 columnas, pero quiero agrupar los campos solamente por 2 columnas.
el problema es que al agrupar por todo el select como lo dice el manual, se me distorsiona el resultado.

Un ejemplo de lo que se quiere podría ser esta consulta.

1
2
3
4
5
SELECT p.codigo, p.nombre, SUM(k.cantidad2), k.vlor_unitario
FROM productos_servicios p INNER JOIN kardex k
ON p.codigo=k.codigo_referencia
GROUP BY p.codigo, p.nombre, k.vlor_unitario
ORDER BY p.codigo;

Me sale repetido muchas veces el mismo código pues al introducir la columna vlor_unitario varia. Como aparece en el archivo adjunto. Consulta errada.

Sin embargo en mysql me sale correcta ver archivo adjunto. Consulta correcta.
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

tengo una tabla de mas de 40 columnas pero quiero agrupar los campos solamente por 2 columnas

Publicado por Fernanda (28 intervenciones) el 27/05/2020 01:18:26
Prueba lo siguiente

1
2
3
4
5
SELECT p.codigo, p.nombre, SUM(k.cantidad2), MAX(k.vlor_unitario)
FROM productos_servicios p INNER JOIN kardex k
ON p.codigo=k.codigo_referencia
GROUP BY p.codigo, p.nombre,
ORDER BY p.codigo;
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
sin imagen de perfil
Val: 22
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

tengo una tabla de mas de 40 columnas pero quiero agrupar los campos solamente por 2 columnas

Publicado por Gerardo (10 intervenciones) el 27/05/2020 03:29:30
Perfecto para esta consulta. Gracias.

1
2
3
4
5
6
7
8
9
10
11
INSERT INTO estado_cartera SELECT documento_especial, SUM(valor_asiento2), cuenta_niif, centro_subcentro, vendedor, zona, fecha, vencimiento, '0', '0' " &
FROM registro_diario WHERE niif=1 AND naturaleza='D' AND cuenta_niif like '" & cartera & "%' AND fecha<='" & fecha_consulta & "' AND tercero=" & TextCodTercero.Text & " AND sucursal_tercero=" & TextSucursal.Text & " AND centro_subcentro like '" & TextCodCentro.Text & TextCodSubCentro.Text & "%' "
GROUP BY documento_especial
 
INSERT INTO estado_cartera SELECT documento_especial, SUM(valor_asiento2), cuenta_niif, centro_subcentro, vendedor, zona, '0', '0', fecha, vencimiento
FROM registro_diario WHERE niif=1 AND naturaleza='C' AND cuenta_niif like '" & cartera & "%' AND fecha<='" & fecha_consulta & "' AND tercero=" & TextCodTercero.Text & " AND sucursal_tercero=" & TextSucursal.Text & " AND centro_subcentro like '" & TextCodCentro.Text & TextCodSubCentro.Text & "%'
GROUP BY documento_especial
 
INSERT INTO estado_cartera2 SELECT documento, SUM(saldos), cuenta, centro, vendedor, zona, fecha, vencimiento, fecha2, vencimiento2
FROM estado_cartera
GROUP BY documento

Están son unas consulta para sacar un estado de cuenta de cliente. En mysqi me funciona al peluche. Pero en sql server me jode en el group by.

O sea que según la repuesta me toca colocar el resto de campos como funciones agregadas o hay otra forma de hacer las consultas. Pues lo único que deseo es que me agrupe por el documento de cruce en este caso documento especial. En la primera sumo los debitos y en la segunda los créditos usando una tabla temporal para recoger el resultado.

Gracias por ilustrarme. Quedo pendiente.
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

tengo una tabla de mas de 40 columnas pero quiero agrupar los campos solamente por 2 columnas

Publicado por Fernanda (28 intervenciones) el 27/05/2020 19:19:41
Al menos yo lo hago así siempre
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