Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] Sumar dos filas, resultado en una fila

Estas en el tema de Sumar dos filas, resultado en una fila en el foro de SQL Server en Foros del Web. Buen día amigos. Tengo la siguiente consulta: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SELECT TB1 . PRODUCTO , TB1 . NOMBRE , TB1 . VALORUNIT ...
  #1 (permalink)  
Antiguo 15/10/2015, 10:56
 
Fecha de Ingreso: octubre-2015
Ubicación: Bogotá
Mensajes: 13
Antigüedad: 8 años, 6 meses
Puntos: 0
Sumar dos filas, resultado en una fila

Buen día amigos.

Tengo la siguiente consulta:

Código SQL:
Ver original
  1. SELECT TB1.PRODUCTO,TB1.NOMBRE,TB1.VALORUNIT,TB1.CANTIDAD,TB1.UNDVENTA,TB1.IVA, 0 AS 'ORDIMP'
  2. FROM   MVTRADE AS TB1 JOIN MTMERCIA AS TB2 ON TB1.PRODUCTO = TB2.CODIGO
  3. WHERE   TB1.PRODUCTO IN ('2600','2600A') AND
  4.         TB1.ORIGEN = 'FAC' AND
  5.         TB1.TIPODCTO = 'FS' AND
  6.         TB1.NroDcto='7332'
  7. GROUP BY PRODUCTO,NOMBRE,VALORUNIT,CANTIDAD,UNDVENTA,TB1.IVA

Necesito que el resultado quede solo sume los valorunit, la cantidad, pero:
que producto muestre solo uno, 2600, y que el iva sea el mismo.

Como hago?
  #2 (permalink)  
Antiguo 15/10/2015, 11:30
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Sumar dos filas, resultado en una fila

Pues a simple vista te hace falta el SUM(VALORUNIT) VALORUNIT, SUM(CANTIDAD) CANTIDAD

En cuanto a lo del IVA, no me quedo claro
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 15/10/2015, 11:44
 
Fecha de Ingreso: octubre-2015
Ubicación: Bogotá
Mensajes: 13
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: Sumar dos filas, resultado en una fila

Cita:
Iniciado por iislas Ver Mensaje
Pues a simple vista te hace falta el SUM(VALORUNIT) VALORUNIT, SUM(CANTIDAD) CANTIDAD

En cuanto a lo del IVA, no me quedo claro
Gracias.
Mira, este es el resultado que tengo


Y esto es a lo que necesito llegar:

  #4 (permalink)  
Antiguo 15/10/2015, 11:47
 
Fecha de Ingreso: enero-2013
Mensajes: 176
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Sumar dos filas, resultado en una fila

Código SQL:
Ver original
  1. SELECT TB1.PRODUCTO,TB1.NOMBRE,SUM(TB1.VALORUNIT),SUM(TB1.CANTIDAD),TB1.UNDVENTA,TB1.IVA, 0 AS 'ORDIMP'
  2. FROM   MVTRADE AS TB1 JOIN MTMERCIA AS TB2 ON TB1.PRODUCTO = TB2.CODIGO
  3. WHERE   TB1.PRODUCTO IN ('2600','2600A') AND
  4.         TB1.ORIGEN = 'FAC' AND
  5.         TB1.TIPODCTO = 'FS' AND
  6.         TB1.NroDcto='7332'
  7. GROUP BY PRODUCTO,NOMBRE,UNDVENTA,TB1.IVA

Listo solo sumas valor unitario y cantidad, por eso los excluyes del group by

Saludos!
__________________
Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar....
  #5 (permalink)  
Antiguo 15/10/2015, 11:49
 
Fecha de Ingreso: enero-2013
Mensajes: 176
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Sumar dos filas, resultado en una fila

CORRIGIENDO EN 3,2,1...

Código SQL:
Ver original
  1. SELECT SUBSTRING(TB1.PRODUCTO,1,4),TB1.NOMBRE,SUM(TB1.VALORUNIT),SUM(TB1.CANTIDAD),TB1.UNDVENTA,TB1.IVA, 0 AS 'ORDIMP'
  2. FROM   MVTRADE AS TB1 JOIN MTMERCIA AS TB2 ON TB1.PRODUCTO = TB2.CODIGO
  3. WHERE   TB1.PRODUCTO IN ('2600','2600A') AND
  4.         TB1.ORIGEN = 'FAC' AND
  5.         TB1.TIPODCTO = 'FS' AND
  6.         TB1.NroDcto='7332'
  7. GROUP BY PRODUCTO,NOMBRE,UNDVENTA,TB1.IVA
__________________
Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar....
  #6 (permalink)  
Antiguo 15/10/2015, 11:56
 
Fecha de Ingreso: octubre-2015
Ubicación: Bogotá
Mensajes: 13
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: Sumar dos filas, resultado en una fila

Cita:
Iniciado por Paty_RR Ver Mensaje
CORRIGIENDO EN 3,2,1...

Código SQL:
Ver original
  1. SELECT SUBSTRING(TB1.PRODUCTO,1,4),TB1.NOMBRE,SUM(TB1.VALORUNIT),SUM(TB1.CANTIDAD),TB1.UNDVENTA,TB1.IVA, 0 AS 'ORDIMP'
  2. FROM   MVTRADE AS TB1 JOIN MTMERCIA AS TB2 ON TB1.PRODUCTO = TB2.CODIGO
  3. WHERE   TB1.PRODUCTO IN ('2600','2600A') AND
  4.         TB1.ORIGEN = 'FAC' AND
  5.         TB1.TIPODCTO = 'FS' AND
  6.         TB1.NroDcto='7332'
  7. GROUP BY PRODUCTO,NOMBRE,UNDVENTA,TB1.IVA
no, sale el mismo resultado
  #7 (permalink)  
Antiguo 15/10/2015, 11:59
 
Fecha de Ingreso: octubre-2015
Ubicación: Bogotá
Mensajes: 13
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: Sumar dos filas, resultado en una fila

Cita:
Iniciado por Paty_RR Ver Mensaje
Código SQL:
Ver original
  1. SELECT TB1.PRODUCTO,TB1.NOMBRE,SUM(TB1.VALORUNIT),SUM(TB1.CANTIDAD),TB1.UNDVENTA,TB1.IVA, 0 AS 'ORDIMP'
  2. FROM   MVTRADE AS TB1 JOIN MTMERCIA AS TB2 ON TB1.PRODUCTO = TB2.CODIGO
  3. WHERE   TB1.PRODUCTO IN ('2600','2600A') AND
  4.         TB1.ORIGEN = 'FAC' AND
  5.         TB1.TIPODCTO = 'FS' AND
  6.         TB1.NroDcto='7332'
  7. GROUP BY PRODUCTO,NOMBRE,UNDVENTA,TB1.IVA

Listo solo sumas valor unitario y cantidad, por eso los excluyes del group by

Saludos!
No, si los saco del group by, aparece La columna 'MVTRADE.PRODUCTO' de la lista de selección no es válida, porque no está contenida en una función de agregado ni en la cláusula GROUP BY. Y los campos incluidos en el SELECT son obligatorios
  #8 (permalink)  
Antiguo 15/10/2015, 14:46
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Sumar dos filas, resultado en una fila

¿Y si agregas el ALIAS de tu tabla en el GROUP BY?


GROUP BY TB1.PRODUCTO,TB1.NOMBRE,TB1.UNDVENTA,TB1.IVA
__________________
MCTS Isaias Islas
  #9 (permalink)  
Antiguo 15/10/2015, 14:53
 
Fecha de Ingreso: enero-2013
Mensajes: 176
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Sumar dos filas, resultado en una fila

PERDON ERRORES DE COPY PASTE
Código SQL:
Ver original
  1. SELECT SUBSTRING(TB1.PRODUCTO,1,4),TB1.NOMBRE,SUM(TB1.VALORUNIT),SUM(TB1.CANTIDAD),TB1.UNDVENTA,TB1.IVA, 0 AS 'ORDIMP'
  2. FROM   MVTRADE AS TB1 JOIN MTMERCIA AS TB2 ON TB1.PRODUCTO = TB2.CODIGO
  3. WHERE   TB1.PRODUCTO IN ('2600','2600A') AND
  4.         TB1.ORIGEN = 'FAC' AND
  5.         TB1.TIPODCTO = 'FS' AND
  6.         TB1.NroDcto='7332'
  7. GROUP BY SUBSTRING(TB1.PRODUCTO,1,4),NOMBRE,UNDVENTA,TB1.IVA, 0
__________________
Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar....
  #10 (permalink)  
Antiguo 15/10/2015, 14:54
 
Fecha de Ingreso: enero-2013
Mensajes: 176
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Sumar dos filas, resultado en una fila

El substring no estoy segura si es de 1 a 4 o de 0 a 3 intenta con los dos porfa
__________________
Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar....
  #11 (permalink)  
Antiguo 15/10/2015, 15:28
 
Fecha de Ingreso: octubre-2015
Ubicación: Bogotá
Mensajes: 13
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: Sumar dos filas, resultado en una fila

No paty, no anda. lo resolvi con esta soluciòn de libras:
Código SQL:
Ver original
  1. SELECT '2600' AS producto, 'TRANSPORTE NACIONAL DE CARGA'AS NOMBRE ,total1 AS valorunitario,total2 AS cantidad,undventa,iva,ordimp FROM(
  2. SELECT nombre, SUM(valorunit) total1, SUM(cantidad) total2, undventa,iva,ordimp
  3. FROM(
  4. SELECT TB1.PRODUCTO,TB1.NOMBRE,TB1.VALORUNIT,TB1.CANTIDAD,TB1.UNDVENTA,TB1.IVA, 0 AS 'ORDIMP'
  5. FROM   MVTRADE AS TB1 JOIN MTMERCIA AS TB2 ON TB1.PRODUCTO = TB2.CODIGO
  6. WHERE   TB1.PRODUCTO IN ('2600','2600A') AND
  7.         TB1.ORIGEN = 'FAC' AND
  8.         TB1.TIPODCTO = 'FS' AND
  9.         TB1.NroDcto='7332'
  10. GROUP BY PRODUCTO,NOMBRE,VALORUNIT,CANTIDAD,UNDVENTA,TB1.IVA
  11. ) AS t1
  12. GROUP BY nombre, undventa,iva,ordimp
  13. ) AS t2

Etiquetas: fila, filas, join, resultado, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:48.