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

[SOLUCIONADO] campos alfabéticos repetidos, necesito un solo campo de respuesta pero otro con suma

Estas en el tema de campos alfabéticos repetidos, necesito un solo campo de respuesta pero otro con suma en el foro de SQL Server en Foros del Web. Hola a todos. El tema anterior lo resolví como verán a continuación. El problema radica en que aparece una fila por cada vez que encuentra ...
  #1 (permalink)  
Antiguo 13/10/2015, 15:29
 
Fecha de Ingreso: octubre-2015
Ubicación: Bogotá
Mensajes: 13
Antigüedad: 9 años, 1 mes
Puntos: 0
campos alfabéticos repetidos, necesito un solo campo de respuesta pero otro con suma

Hola a todos.
El tema anterior lo resolví como verán a continuación.
El problema radica en que aparece una fila por cada vez que encuentra el mismo campo. Lo difícil es que necesito una fila de respuesta solo con "chevrolet", pero a su vez que en el campo numérico de la fila, me totalice todos los valores de cada fila con la palabra
Código SQL:
Ver original
  1. SELECT [dbo].[F_MonedaMVForm]('FAC','FS','7332',mvtrade.idmvtrade) AS ValorUnitario,mvtrade.PRODUCTO,mvtrade.NOMBRE,mvtrade.UNDVENTA, 0 AS 'ordimp'
  2.     FROM MVTrade INNER JOIN MTMERCIA ON MVTrade.PRODUCTO = MTMERCIA.CODIGO
  3.     WHERE NOT MVTrade.PRODUCTO IN ('2600','2600A') AND
  4.        MVTrade.Origen ='FAC' AND  
  5.        MVTrade.TipoDcto='FS' AND  
  6.        MVTrade.NroDcto='7332' UNION
  7.        
  8. SELECT SUM(MVTrade.VALORUNIT) AS ValorUnitario,mvtrade.PRODUCTO,mvtrade.NOMBRE,mvtrade.UNDVENTA,  0 AS 'ordimp'
  9.     FROM mvtrade JOIN MTMERCIA ON MVTrade.PRODUCTO = MTMERCIA.CODIGO
  10.     WHERE MVTrade.PRODUCTO IN ('2600','2600A') AND
  11.     MVTrade.ORIGEN = 'FAC' AND
  12.     MVTrade.TIPODCTO = 'FS' AND
  13.     MVTrade.NroDcto='7332'
  14.     GROUP BY PRODUCTO, NOMBRE, UNDVENTA

Última edición por gnzsoloyo; 14/10/2015 a las 07:13
  #2 (permalink)  
Antiguo 13/10/2015, 15:39
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: campos alfabéticos repetidos, necesito un solo campo de respuesta pero otr

Código SQL:
Ver original
  1. SELECT SUM(valorunitario), producto FROM(
  2. SELECT [dbo].[F_MonedaMVForm]('FAC','FS','7332',mvtrade.idmvtrade) AS ValorUnitario,mvtrade.PRODUCTO,mvtrade.NOMBRE,mvtr ade.UNDVENTA, 0 AS 'ordimp'
  3. FROM MVTrade INNER JOIN MTMERCIA ON MVTrade.PRODUCTO = MTMERCIA.CODIGO
  4. WHERE NOT MVTrade.PRODUCTO IN ('2600','2600A') AND
  5. MVTrade.Origen ='FAC' AND
  6. MVTrade.TipoDcto='FS' AND
  7. MVTrade.NroDcto='7332'
  8. UNION
  9. SELECT SUM(MVTrade.VALORUNIT) AS ValorUnitario,mvtrade.PRODUCTO,mvtrade.NOMBRE,mvtr ade.UNDVENTA, 0 AS 'ordimp'
  10. FROM mvtrade JOIN MTMERCIA ON MVTrade.PRODUCTO = MTMERCIA.CODIGO
  11. WHERE MVTrade.PRODUCTO IN ('2600','2600A') AND
  12. MVTrade.ORIGEN = 'FAC' AND
  13. MVTrade.TIPODCTO = 'FS' AND
  14. MVTrade.NroDcto='7332'
  15. GROUP BY PRODUCTO, NOMBRE, UNDVENTA
  16. ) AS t1 GROUP BY producto

algo asi
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 14/10/2015, 07:09
 
Fecha de Ingreso: octubre-2015
Ubicación: Bogotá
Mensajes: 13
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: campos alfabéticos repetidos, necesito un solo campo de respuesta pero otr

Cita:
Iniciado por Libras Ver Mensaje
Código SQL:
Ver original
  1. SELECT SUM(valorunitario), producto FROM(
  2. SELECT [dbo].[F_MonedaMVForm]('FAC','FS','7332',mvtrade.idmvtrade) AS ValorUnitario,mvtrade.PRODUCTO,mvtrade.NOMBRE,mvtr ade.UNDVENTA, 0 AS 'ordimp'
  3. FROM MVTrade INNER JOIN MTMERCIA ON MVTrade.PRODUCTO = MTMERCIA.CODIGO
  4. WHERE NOT MVTrade.PRODUCTO IN ('2600','2600A') AND
  5. MVTrade.Origen ='FAC' AND
  6. MVTrade.TipoDcto='FS' AND
  7. MVTrade.NroDcto='7332'
  8. UNION
  9. SELECT SUM(MVTrade.VALORUNIT) AS ValorUnitario,mvtrade.PRODUCTO,mvtrade.NOMBRE,mvtr ade.UNDVENTA, 0 AS 'ordimp'
  10. FROM mvtrade JOIN MTMERCIA ON MVTrade.PRODUCTO = MTMERCIA.CODIGO
  11. WHERE MVTrade.PRODUCTO IN ('2600','2600A') AND
  12. MVTrade.ORIGEN = 'FAC' AND
  13. MVTrade.TIPODCTO = 'FS' AND
  14. MVTrade.NroDcto='7332'
  15. GROUP BY PRODUCTO, NOMBRE, UNDVENTA
  16. ) AS t1 GROUP BY producto

algo asi
Gracias por tu respuesta. Sin embargo, no funcionó. El meollo está desde el 9. que es donde trabaja solo con los dos códigos que necesito filtrar.
  #4 (permalink)  
Antiguo 14/10/2015, 08:07
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: campos alfabéticos repetidos, necesito un solo campo de respuesta pero otr

cual 9??? cual es el resultado que te arroja tu consulta? y sobre de eso ya te podria ayudar un poco ;)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 14/10/2015, 09:13
 
Fecha de Ingreso: octubre-2015
Ubicación: Bogotá
Mensajes: 13
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: campos alfabéticos repetidos, necesito un solo campo de respuesta pero otr

Cita:
Iniciado por Libras Ver Mensaje
cual 9??? cual es el resultado que te arroja tu consulta? y sobre de eso ya te podria ayudar un poco ;)
Gracias. El punto 9. de la consulta que enviaste. O sea:
Código SQL:
Ver original
  1. SELECT SUM(MVTrade.VALORUNIT) AS ValorUnitario,mvtrade.PRODUCTO,mvtrade.NOMBRE,mvtr ade.UNDVENTA, 0 AS 'ordimp'
  2. FROM mvtrade JOIN MTMERCIA ON MVTrade.PRODUCTO = MTMERCIA.CODIGO
  3. WHERE MVTrade.PRODUCTO IN ('2600','2600A') AND
  4. MVTrade.ORIGEN = 'FAC' AND
  5. MVTrade.TIPODCTO = 'FS' AND
  6. MVTrade.NroDcto='7332'
  7. GROUP BY PRODUCTO, NOMBRE, UNDVENTA
  8. ) AS t1 GROUP BY producto

El resultado de la consulta que envias es:
Mens. 102, Nivel 15, Estado 1, Línea 2
Sintaxis incorrecta cerca de '.'.
Mens. 102, Nivel 15, Estado 1, Línea 9
Sintaxis incorrecta cerca de '.'.

El resultado de la consulta que envío es:


Necesito que los dos resultados "transporte nacional de carga" aparezcan en la misma fila
  #6 (permalink)  
Antiguo 14/10/2015, 09:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: campos alfabéticos repetidos, necesito un solo campo de respuesta pero otr

@kikarodaima:
Por favor, USA el HIGHLIGHT "SQL" cuando postees código.
Ayuda a ver claramente lo que haces y entender la consulta.
Para eso tienes ese combo...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 14/10/2015, 09:22
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: campos alfabéticos repetidos, necesito un solo campo de respuesta pero otr

Cita:
Iniciado por kikarodaima Ver Mensaje
Gracias. El punto 9. de la consulta que enviaste. O sea:
Código SQL:
Ver original
  1. SELECT SUM(MVTrade.VALORUNIT) AS ValorUnitario,mvtrade.PRODUCTO,mvtrade.NOMBRE,mvtr ade.UNDVENTA, 0 AS 'ordimp'
  2. FROM mvtrade JOIN MTMERCIA ON MVTrade.PRODUCTO = MTMERCIA.CODIGO
  3. WHERE MVTrade.PRODUCTO IN ('2600','2600A') AND
  4. MVTrade.ORIGEN = 'FAC' AND
  5. MVTrade.TIPODCTO = 'FS' AND
  6. MVTrade.NroDcto='7332'
  7. GROUP BY PRODUCTO, NOMBRE, UNDVENTA
  8. ) AS t1 GROUP BY producto

El resultado de la consulta que envias es:
Mens. 102, Nivel 15, Estado 1, Línea 2
Sintaxis incorrecta cerca de '.'.
Mens. 102, Nivel 15, Estado 1, Línea 9
Sintaxis incorrecta cerca de '.'.

El resultado de la consulta que envío es:


Necesito que los dos resultados "transporte nacional de carga" aparezcan en la misma fila
El punto 9 como tu dices es parte de tu consulta yo nada mas agregue la sumatoria, viendo la imagen ocupas algo como esto:

Código SQL:
Ver original
  1. SELECT SUM(valorunitario), nombre, UNDVENTA, ordimp FROM(
  2.  
  3. SELECT [dbo].[F_MonedaMVForm]('FAC','FS','7332',mvtrade.idmvtrade) AS ValorUnitario,mvtrade.PRODUCTO,mvtrade.NOMBRE,mvtrade.UNDVENTA, 0 AS 'ordimp'
  4.     FROM MVTrade INNER JOIN MTMERCIA ON MVTrade.PRODUCTO = MTMERCIA.CODIGO
  5.     WHERE NOT MVTrade.PRODUCTO IN ('2600','2600A') AND
  6.        MVTrade.Origen ='FAC' AND  
  7.        MVTrade.TipoDcto='FS' AND  
  8.        MVTrade.NroDcto='7332' UNION
  9.        
  10. SELECT SUM(MVTrade.VALORUNIT) AS ValorUnitario,mvtrade.PRODUCTO,mvtrade.NOMBRE,mvtrade.UNDVENTA,  0 AS 'ordimp'
  11.     FROM mvtrade JOIN MTMERCIA ON MVTrade.PRODUCTO = MTMERCIA.CODIGO
  12.     WHERE MVTrade.PRODUCTO IN ('2600','2600A') AND
  13.     MVTrade.ORIGEN = 'FAC' AND
  14.     MVTrade.TIPODCTO = 'FS' AND
  15.     MVTrade.NroDcto='7332'
  16.     GROUP BY PRODUCTO, NOMBRE, UNDVENTA
  17.  
  18.  
  19. ) AS t1 GROUP BY nombre, UNDVENTA, ordimp

Si te fijas nada mas estoy agregando la primera y ultima linea, lo demas es tu query.....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 14/10/2015, 10:33
 
Fecha de Ingreso: octubre-2015
Ubicación: Bogotá
Mensajes: 13
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: campos alfabéticos repetidos, necesito un solo campo de respuesta pero otr

Eres un capo! gracias!!!
  #9 (permalink)  
Antiguo 14/10/2015, 10:46
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: campos alfabéticos repetidos, necesito un solo campo de respuesta pero otr

de nada
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: campo, campos, repetidos, respuesta, select, suma
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 11:23.