FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
Ventas por mes
Hola a todos los Amigos de este Foro. Tengo la siguiente situación, y es que quiero obtener las ventas realizadas por mes de los productos. Esto de acuerdo a un parámetro de fecha dado.
Tengo el siguiente query, pero no se como realizar las sumas por cada mes, ya que ne da un error en la suma. Si alguien me puede ayudar, por favor.
Última edición por Casimiro Notevi fecha: 14-01-2014 a las 19:34:01. |
#2
|
||||
|
||||
A qué te refieres con:
Cita:
Si el valor es incorrecto, revisa lo que devuelve en SQL si hacer el GROUP BY y quitando "SUM(" para ver todos los valores que entran en la suma. Si el SQL devuelve un error, sería necesario que nos dijeras el mensaje exacto, sin traducir. Si es otra cosa, deberás explicarte un poco mejor. |
#3
|
|||
|
|||
Gracias DUILIOISOLA por el interés.
El mensaje de error que me da es el siguiente: Attempt to execute an unprepared dynamic SQL statement. Si le quito al query el as total_mes, no me da el error, pero necesito cargar la variable, ya que lo despliego en un TStrinGrid el resultado de las ventas por mes y año. Gracias de nuevo |
#4
|
||||
|
||||
Este error no tiene que ver con el SQL, sinó que tiene que ver con el componente.
Supongo que antes de ejecutar el SQL debes "preparalo". Supongo que al ser un Query dinámico (creas el SQL a medida que ejecutas el programa) el componente necesita que se prepare para saber qué parámetros necesita, que campos devolverá, su tipo, estructura y demás. Prueba con esto:
|
#5
|
|||
|
|||
Amigo, disculpe y en que parte del código pongo el IBQuery4.Prepare; y el IBQuery4.Open;
|
#6
|
||||
|
||||
Cita:
__________________
all your base are belong to us |
#7
|
|||
|
|||
Hola look, me funciona bien en el sentido que no me da ningún error, pero a la hora de cargar las celdas del TStringGrid, me las carga vacias. Ejemplo de la carga:
Gracias por la ayuda Última edición por Casimiro Notevi fecha: 14-01-2014 a las 22:58:00. |
#8
|
||||
|
||||
Antes que nada pon el código entre las etiquetas [ delphi ] y [ /delphi ]
Verifica cuantas veces pasa por el bucle. No especificas como se carga la variable CONTE que determina la cantidad de veces que se realiza el bucle. Tampoco inicializas la variable C1. Normalmente se utiliza un bucle WHILE para estas cosas:
|
#9
|
||||
|
||||
Cita:
No se que delphi estas usando pero eso te lo ahorrarias con el LiveBindings.
__________________
all your base are belong to us |
#10
|
|||
|
|||
Utilizo el Embarcadero RAD Studio 2010. Nunca he utilizado el DBGrid. Y en este caso no se como cargarlo.
|
#11
|
|||
|
|||
Look, la consulta si me devuelve registros. No se que podrá ser, ya que no me carga la información en el TStringGrid???????????????
|
#12
|
||||
|
||||
Cita:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 14-01-2014 a las 23:11:00. |
#13
|
|||
|
|||
Amigos he intentado todo para poder mostrar las ventas por mes y año y no me lo muestra. Aquí les dejo el procedimiento completo, para ver en que me pueden ayudar. Se los agradezco, ya que he hecho lo que esta a mi alcance y no he podido.
procedure TMovimiento_Pedidos.desglose_articulo_ventas; var conte, i, c1 : integer; compras3, estado1 : string; fecha1, fecha2 : string; //TdateTime; begin estado1 := 'ANULADO'; fecha1 := datetostr(fechaini.DateTime); fecha2 := datetostr(fechafin.DateTime); c1 := 0; IBQuery4.Close; IBQuery4.SQL.Clear; IBQuery4.SQL.Add('select count(*) as entradas from ARTICULOS a inner join FACTURADT b on (b.FAARID = a.ARID) '+ 'inner join FACTURAS c on (c.FAID = b.FAID) and (c.FAESTADO <> '''+estado1+''') and (c.FAFCH between '''+fecha1+''' and '''+fecha2+''') '+ ' where a.ARCODIGO = '''+Codigo_Prod.Text+''''); IBQuery4.Prepare; IBQuery4.Open; begin conte := IBQuery4.FieldByName('entradas').AsInteger; IBQuery4.Close; IBQuery4.SQL.Clear; IBQuery4.SQL.Add('select extract(year from fafch) anio1, extract(month from fafch) meses1, sum(facantidad) as ventas_mes'+ 'from ARTICULOS a inner join FACTURADT b on (b.FAARID = a.ARID) '+ 'inner join FACTURAS c on (c.FAID = b.FAID) and (c.FAESTADO <> '''+estado1+''') and (c.FAFCH between '''+fecha1+''' and '''+fecha2+''') '+ 'where a.ARCODIGO = '''+Codigo_Prod.Text+''' group by 1, 2'+ 'order by 1, 2'); IBQuery4.Prepare; IBQuery4.Open; end; for i := 1 to conte do begin begin sg1.Cells[1+c1,3] := IBQuery4.FieldByName('meses1').AsString+'-'+IBQuery4.FieldByName('anio1').AsString; sg1.Cells[2+c1,3] := IBQuery4.FieldByName('ventas_mes').AsString; c1 := c1+2; end; IBQuery4.Next; end; end; |
#14
|
||||
|
||||
Cita:
__________________
all your base are belong to us |
#15
|
|||
|
|||
Amigo si lo hice, pero tampoco me funciono, entonces le estoy pasando el procedimiento desde el principio. Inente hacerlo en DBGrid, pero es lo mismo, no me carga las celdas ono se sihice algo malo. La base de datos que uso es SQL Server 2008, y la comunicación con la base de datos lo hago por medio del IBQuery y el IBTransaction.
Gracias |
#16
|
|||
|
|||
Amigo si lo hice, pero tampoco me funciono, entonces le estoy pasando el procedimiento desde el principio. Intente hacerlo en el DBGrid, pero es lo mismo, no me carga las celdas pero no se si hice algo malo. La base de datos que uso es SQL Server 2008, y la comunicación con la base de datos lo hago por medio del IBQuery y el IBTransaction.
Gracias |
#17
|
||||
|
||||
Cita:
__________________
all your base are belong to us |
#18
|
|||
|
|||
Correcto son para Firebird, la base de datos esta en otro lado.
|
#19
|
||||
|
||||
Hola Jorge.
Si el gestor de base de datos que usas es MS SQLServer 2008, podrías usar por ejemplo ADO o dbExpress para conectarte (revisa: dbExpress Driver for SQL Server) . Pero como te comenta look mas arriba, no lo vas a lograr usando los componentes IBXpress. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#20
|
|||
|
|||
Hola Amigos.
Sinceramente no creo que sea tan difícil o dificilisimo, hacer un procedimiento para obtener las ventas por mes y año y mostrarlo en un TStringGrid, como lo detalle a continuación. Mes/Año Cant Mes/Año Cant Mes Año Cant FACTURADO 01/2012 5 02/2012 10 04/2014 25 No se que es lo que estoy haciendo mal, que he intentado por todos los medios y no me funcione. He hecho varias consultas a GOOGLE y nada. Por Favor Ayuda. Gracias Amigos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
estadistica de ventas | DOS | Varios | 3 | 02-01-2013 16:52:51 |
Programa de ventas | epenor | Conexión con bases de datos | 19 | 22-09-2008 21:30:19 |
Estadisticas de Ventas | CoCaInE | Varios | 5 | 04-01-2007 13:56:25 |
Contar ventas. | Producto77 | SQL | 5 | 20-07-2006 19:51:56 |
Ventas de PC con Linux. | REHome | Linux | 4 | 03-05-2004 15:52:23 |
|