Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-01-2007
CoCaInE CoCaInE is offline
Miembro
 
Registrado: nov 2005
Posts: 66
Poder: 19
CoCaInE Va por buen camino
Estadisticas de Ventas

Estoy Realizando un sistema de facturacion en donde debo sacar la estadisticas de las ventas brutas durante los 12 meses del año y presentarlo en un chart osea en un grafico estadistico, Estoy utilizando Sql Server como motor de base de datos y la tabla de caja como campos Tengo Fecha_Venta,Venta_Efectivo,Venta_Tarjeta,Venta_Credito que en este caso la ventas brutas serian la suma de todos los campos mi pregunta es la siguiente como puedo totalizar o sacar la sumatoria de cada uno de los meses por separado y presentarlo en un chart ?
Responder Con Cita
  #2  
Antiguo 03-01-2007
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Creo que esta pregunta es un tanto general, pero si estás utilizando SQL podrías utilizar la función "SUM" y "GROUP BY" para obtener los valores. Ahora mismo no recuerdo, pero creo que Delphi 6 incluía componentes para crear diagramas, o tal vez fue un componente que compró la empresa para que trabajaba...
Responder Con Cita
  #3  
Antiguo 03-01-2007
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
Prueba esto adecuandolo a los campos de tu tabla

Código SQL [-]
select  'Tareas Cerradas' as Consulta, Tecnico, 
sum( case datepart("month", f_fin) when 1 then 1 else 0 end) as Enero,
sum( case datepart("month", f_fin) when 2 then 1 else 0 end) as Febrero,
sum( case datepart("month", f_fin) when 3 then 1 else 0 end) as Marzo,
sum( case datepart("month", f_fin) when 4 then 1 else 0 end) as Abril,
sum( case datepart("month", f_fin) when 5 then 1 else 0 end) as Mayo,
sum( case datepart("month", f_fin) when 6 then 1 else 0 end) as Junio,
sum( case datepart("month", f_fin) when 7 then 1 else 0 end) as Julio,
sum( case datepart("month", f_fin) when 8 then 1 else 0 end) as Agosto,
sum( case datepart("month", f_fin) when 9 then 1 else 0 end) as Septiembre,
sum( case datepart("month", f_fin) when 10 then 1 else 0 end) as Octubre,
sum( case datepart("month", f_fin) when 11 then 1 else 0 end) as Noviembre,
sum( case datepart("month", f_fin) when 12 then 1 else 0 end) as Diciembre 
/*cast (sum( T.Duracion)/3600.00 as decimal(10,2)) as Tiempo_horas  */
FROM ahd.tareas
where  
f_fin  between  '01/01/2005' and '12/31/2005' 
group by Tecnico

Por lo menos tendrás el origen de los datos del gráfico.

Suerte
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #4  
Antiguo 03-01-2007
menavas menavas is offline
Registrado
 
Registrado: ago 2006
Posts: 7
Poder: 0
menavas Va por buen camino
Buenos dias amigo, prueba con este query
Código SQL [-]
select * from (SELECT cast (DATEPART("month", Fecha_Venta) as CHAR (2)) + '/' + cast ( DATEPART("year", Fecha_Venta) as CHAR (4)) AS FIELD_1, sum(Venta_Efectivo+Venta_Tarjeta+Venta_Credito) AS FIELD_2 FROM loans GROUP BY cast (DATEPART("month", Fecha_Venta) as CHAR (2)) + '/' + cast (DATEPART("year", Fecha_Venta) as CHAR (4))) as TEMP order by SUBSTRING(field_1, 4, 4),cast (ltrim(rtrim(SUBSTRING(field_1, 1, 2))) as integer)

Última edición por menavas fecha: 03-01-2007 a las 18:17:25.
Responder Con Cita
  #5  
Antiguo 04-01-2007
CoCaInE CoCaInE is offline
Miembro
 
Registrado: nov 2005
Posts: 66
Poder: 19
CoCaInE Va por buen camino
Cita:
Empezado por fjcg02
Prueba esto adecuandolo a los campos de tu tabla


Código SQL [-]select 'Tareas Cerradas' as Consulta, Tecnico,
sum( case datepart("month", f_fin) when 1 then 1 else 0 end) as Enero,
sum( case datepart("month", f_fin) when 2 then 1 else 0 end) as Febrero,
sum( case datepart("month", f_fin) when 3 then 1 else 0 end) as Marzo,
sum( case datepart("month", f_fin) when 4 then 1 else 0 end) as Abril,
sum( case datepart("month", f_fin) when 5 then 1 else 0 end) as Mayo,
sum( case datepart("month", f_fin) when 6 then 1 else 0 end) as Junio,
sum( case datepart("month", f_fin) when 7 then 1 else 0 end) as Julio,
sum( case datepart("month", f_fin) when 8 then 1 else 0 end) as Agosto,
sum( case datepart("month", f_fin) when 9 then 1 else 0 end) as Septiembre,
sum( case datepart("month", f_fin) when 10 then 1 else 0 end) as Octubre,
sum( case datepart("month", f_fin) when 11 then 1 else 0 end) as Noviembre,
sum( case datepart("month", f_fin) when 12 then 1 else 0 end) as Diciembre
/*cast (sum( T.Duracion)/3600.00 as decimal(10,2)) as Tiempo_horas */
FROM ahd.tareas
where
f_fin between '01/01/2005' and '12/31/2005'
group by Tecnico




Por lo menos tendrás el origen de los datos del gráfico.

Suerte
realmente soy un poco novato en sql me podrias hacerme el favor de explicarme el codigo para saber que sustituir
Responder Con Cita
  #6  
Antiguo 04-01-2007
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
Creo que con esto podrás visualizar en un db grid los datos que necesitas.

Qué hace: El case mira que el mes de la fecha sea 1, 2, 3, ...12 para ajustar a la columna correspondiente la cantidad.
Si se cumple, suma el valor del campo que nos ocupa (efectivo, credito, tarjeta) y lo suma. Si no, suma 0

Hacemos una union de los tres tipos de venta y tenemos todo perfecto.

Puede que hay que ajustar algo ya que no tengo SQL Server ni analizador de SQL, pero algo tendrás que hacer tú ;.) ...
Además tendrás que parametrizar la query para que las fechas las puedas poner por Tedit o similar

Suerte


Código SQL [-]
select 'Ventas Efectivo' as TipoVenta, 
sum( case datepart("month", fecha_venta) when 1 then Venta_Efectivo else 0 end) as Enero,
sum( case datepart("month", fecha_venta) when 2 then Venta_Efectivo else 0 end) as Febrero,
sum( case datepart("month", fecha_venta) when 3 then Venta_Efectivo else 0 end) as Marzo,
sum( case datepart("month", fecha_venta) when 4 then Venta_Efectivo else 0 end) as Abril,
sum( case datepart("month", fecha_venta) when 5 then Venta_Efectivo else 0 end) as Mayo,
sum( case datepart("month", fecha_venta) when 6 then Venta_Efectivo else 0 end) as Junio,
sum( case datepart("month", fecha_venta) when 7 then Venta_Efectivo else 0 end) as Julio,
sum( case datepart("month", fecha_venta) when 8 then Venta_Efectivo else 0 end) as Agosto,
sum( case datepart("month", fecha_venta) when 9 then Venta_Efectivo else 0 end) as Septiembre,
sum( case datepart("month", fecha_venta) when 10 then Venta_Efectivo else 0 end) as Octubre,
sum( case datepart("month", fecha_venta) when 11 then Venta_Efectivo else 0 end) as Noviembre,
sum( case datepart("month", fecha_venta) when 12 then Venta_Efectivo else 0 end) as Diciembre 
FROM ahd.tareas
where 
fecha_venta between '01/01/2006' and '12/31/2006' 
group by tipoventa

UNION

select 'Ventas Credito' as TipoVenta, 
sum( case datepart("month", fecha_venta) when 1 then Venta_Credito else 0 end) as Enero,
sum( case datepart("month", fecha_venta) when 2 then Venta_Credito else 0 end) as Febrero,
sum( case datepart("month", fecha_venta) when 3 then Venta_Credito else 0 end) as Marzo,
sum( case datepart("month", fecha_venta) when 4 then Venta_Credito else 0 end) as Abril,
sum( case datepart("month", fecha_venta) when 5 then Venta_Credito else 0 end) as Mayo,
sum( case datepart("month", fecha_venta) when 6 then Venta_Credito else 0 end) as Junio,
sum( case datepart("month", fecha_venta) when 7 then Venta_Credito else 0 end) as Julio,
sum( case datepart("month", fecha_venta) when 8 then Venta_Credito else 0 end) as Agosto,
sum( case datepart("month", fecha_venta) when 9 then Venta_Credito else 0 end) as Septiembre,
sum( case datepart("month", fecha_venta) when 10 then Venta_Credito else 0 end) as Octubre,
sum( case datepart("month", fecha_venta) when 11 then Venta_Credito else 0 end) as Noviembre,
sum( case datepart("month", fecha_venta) when 12 then Venta_Credito else 0 end) as Diciembre 
FROM ahd.tareas
where 
fecha_venta between '01/01/2006' and '12/31/2006' 
group by tipoventa

UNION

select 'Ventas Tarjeta' as TipoVenta, 
sum( case datepart("month", fecha_venta) when 1 then Venta_Tarjeta else 0 end) as Enero,
sum( case datepart("month", fecha_venta) when 2 then Venta_Tarjeta else 0 end) as Febrero,
sum( case datepart("month", fecha_venta) when 3 then Venta_Tarjeta else 0 end) as Marzo,
sum( case datepart("month", fecha_venta) when 4 then Venta_Tarjeta else 0 end) as Abril,
sum( case datepart("month", fecha_venta) when 5 then Venta_Tarjeta else 0 end) as Mayo,
sum( case datepart("month", fecha_venta) when 6 then Venta_Tarjeta else 0 end) as Junio,
sum( case datepart("month", fecha_venta) when 7 then Venta_Tarjeta else 0 end) as Julio,
sum( case datepart("month", fecha_venta) when 8 then Venta_Tarjeta else 0 end) as Agosto,
sum( case datepart("month", fecha_venta) when 9 then Venta_Tarjeta else 0 end) as Septiembre,
sum( case datepart("month", fecha_venta) when 10 then Venta_Tarjeta else 0 end) as Octubre,
sum( case datepart("month", fecha_venta) when 11 then Venta_Tarjeta else 0 end) as Noviembre,
sum( case datepart("month", fecha_venta) when 12 then Venta_Tarjeta else 0 end) as Diciembre 
FROM ahd.tareas
where 
fecha_venta between '01/01/2006' and '12/31/2006' 
group by tipoventa
__________________
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
Distribución de ventas mensual DarkDudae Varios 0 31-08-2006 14:30:14
Contar ventas. Producto77 SQL 5 20-07-2006 19:51:56
Un 25% de las ventas de Dell son en Linux Casimiro Notevi Noticias 1 09-06-2006 10:31:02
Ventas de PC con Linux. REHome Linux 4 03-05-2004 15:52:23


La franja horaria es GMT +2. Ahora son las 00:12:47.


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