Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-10-2013
Theluar Theluar is offline
Miembro
NULL
 
Registrado: ago 2011
Posts: 44
Poder: 0
Theluar Va por buen camino
Consulta sin exito

Que tal Familia, espero todos esten bien!..

Tengo un problema con una consulta de una tabla de ventas.

Tengo una tabla de ventas que cuenta con los siguientes campos:

id , producto, cantidad,importe, fecha,hora

Deseo obtener un listado de las ventas semanales pero, con los productos como columnas y el importe debajo del titulo, algo parecido a esto:

AGUA | JUGO | COCA-COLA | NN |
100.00 50.00 85.00 00.00
25.00 30.00 15.00 10.00
00.00 10.00 55.00 00.00
nn.nn nn.nn nn.nn nn.nn


De antemano gracias!!!

Última edición por Theluar fecha: 14-10-2013 a las 07:12:39.
Responder Con Cita
  #2  
Antiguo 14-10-2013
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Hola Theluar,

Tendrias que agruparlo por el ID del artículo, seria como esto:
Código SQL [-]
SELECT
    ID
    ,PRODUCTO
    ,SUM(CANTIDAD * IMPORTE) AS TOTALIMPORTE
  FROM Ventas
  GROUP BY ID, PRODUCTO
  ORDER BY PRODUCTO
Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #3  
Antiguo 14-10-2013
Theluar Theluar is offline
Miembro
NULL
 
Registrado: ago 2011
Posts: 44
Poder: 0
Theluar Va por buen camino
Muchas gracias olbeup.

Ya lo he intentado así y el resultado es el mismo:

Sale el producto en una sola columna, y lo que necesito es que cada producto sea una columna diferente, y que cada columna contenga los importes de la semana.

No se si me explique bien .?

Saludos.
Responder Con Cita
  #4  
Antiguo 15-10-2013
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Haber que tal esta:
Código SQL [-]
SELECT
    ID
    ,PRODUCTO
    ,SUM(CANTIDAD * IMPORTE) AS TOTALIMPORTE
    ,DATEPART(wk, FECHA) AS SEMANA
  FROM Ventas
  GROUP BY ID, PRODUCTO, DATEPART(wk, FECHA)
  ORDER BY 4, PRODUCTO
Un saludo
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #5  
Antiguo 15-10-2013
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
No mencionas que base de datos estas usando
lo que buscas se llama PIVOT y en SQL Server solo se puede hacer apartir de la version 2005

Se podria hacer un pivot manual en SQL, pero para eso tendrias que saber la cantidad exacta de productos

Código SQL [-]
Select Fecha,
Sum(Case When Producto = 'AGUA' then Cantidad * importe else 0 end) As AGUA,
Sum(Case When Producto = 'JUGO' then Cantidad * importe else 0 end) As JUGO,
Sum(Case When Producto = 'COCA COLA' then Cantidad * importe else 0 end) As COCACOLA
y asi sucesivamente....
__________________
Dulce Regalo que Satanas manda para mi.....

Última edición por Casimiro Notevi fecha: 15-10-2013 a las 21:47:18.
Responder Con Cita
  #6  
Antiguo 16-10-2013
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
No sé que motor de bbdd usas, pero esto se puede aplicar a cualquiera.

Saludos

http://clubdelphi.com/foros/showthre...+trasnformadas
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #7  
Antiguo 16-10-2013
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por fjcg02 Ver Mensaje
No sé que motor de bbdd usas, pero esto se puede aplicar a cualquiera.

Saludos

http://clubdelphi.com/foros/showthre...+trasnformadas

esta es la que le iba a mencionar pero no pude encontrarla
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #8  
Antiguo 16-10-2013
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Cita:
Empezado por oscarac Ver Mensaje
esta es la que le iba a mencionar pero no pude encontrarla
Será que soy el autor ...

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #9  
Antiguo 16-10-2013
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
lo sospeche desde un principio !!!!
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #10  
Antiguo 20-10-2013
Theluar Theluar is offline
Miembro
NULL
 
Registrado: ago 2011
Posts: 44
Poder: 0
Theluar Va por buen camino
Muchas gracias a todos , probé sus soluciones, de momento opte por solucionarlo con la opcion de nuestro compañero oscarac, muchas gracias. Pero me paracio sumamente interesante el articulo que proporciono fjcg02, solo uqe me asegurare de estudiarlo un poco mas para lograr el entendimineto total del procedure

gracias a todos , ya solucione ese problema.
Responder Con Cita
  #11  
Antiguo 20-10-2013
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Cita:
Empezado por Theluar Ver Mensaje
Muchas gracias a todos , probé sus soluciones, de momento opte por solucionarlo con la opcion de nuestro compañero oscarac, muchas gracias. Pero me paracio sumamente interesante el articulo que proporciono fjcg02, solo uqe me asegurare de estudiarlo un poco mas para lograr el entendimineto total del procedure

gracias a todos , ya solucione ese problema.
Te recomiendo que hagas pruebas para lograr un resultado como el que oscarac te sugiere. El procedimiento hace eso exactamente pero de una forma menos manual.

El "problema" de este tipo de consultas es que como añadas un nuevo artículo, tienes que modificar la consulta.
El procedimiento permite que le digas cual es la tabla de productos, hace una select y te la pasa a columnas. es decir, por cada producto añade una fila
Código SQL [-]
Sum(Case When Producto = 'VALOR1' then Cantidad * importe else 0 end) As VALOR1,
...

Esper que te sirva de ayuda.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Campus party Mexico, todo un exito.!!! AzidRain La Taberna 0 12-08-2010 23:52:30
Realizar una consulta sobre los registros que devuelve otra consulta Borjaserrano Firebird e Interbase 12 01-10-2007 23:19:44
Exito en una busqueda MRang14 SQL 1 05-08-2007 15:29:44
Consulta dentro de otra consulta judit25 Conexión con bases de datos 1 25-06-2007 15:52:15
... el exito ... Jure Humor 0 27-03-2004 18:18:03


La franja horaria es GMT +2. Ahora son las 16:52:16.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi