Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Ayuda para montar una consulta (https://www.clubdelphi.com/foros/showthread.php?t=85746)

José Luis Garcí 27-04-2014 17:46:16

Javier eres un




Firmado el abuelete. :D:D:D:D

ecfisa 27-04-2014 19:02:57

Hola José.

Primero que nada buenísimo que solucionaras el tema ^\||/.
Cita:

Empezado por José Luis Garcí (Mensaje 475715)
...la primera me da error, la segunda, simplemente me devuelve nada, aunque no da ningún error y la tercera me da el error por que no reconece FA2.CODIGO

En mis pruebas funcionan ambas, pero lo que comentas me genera una duda ¿ Que versión de Firebird estas usando ? por que con la 2.5 no dá nigún error el uso del alias internos (como FA2). Me interesaría saber si da problemas con versiones anteriores.

Saludos :)

fjcg02 27-04-2014 19:41:33

Cita:

Empezado por José Luis Garcí (Mensaje 475726)
Javier eres un




Firmado el abuelete. :D:D:D:D

Gracias jovencito, pero me has sacao más guapo de lo que soy!!

Saludos
PD: En otro rato explicaré la forma en la que ecfisa obtiene los datos, que también e perfectamente válida.

fjcg02 27-04-2014 19:50:57

Abuelete,
te pongo un link para que estudies un ratito

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

Saludos

fjcg02 27-04-2014 22:30:57

Cita:

Empezado por fjcg02 (Mensaje 475736)
Abuelete,
te pongo un link para que estudies un ratito

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

Saludos

Esto te puede servir para lo siguiente: ah, como ya tengo ventas por meses, me interesa sacar ventas por vendedor, o por zonas, o por...

Saludos

José Luis Garcí 27-04-2014 23:20:26

Gracias JAvier, tendre que ponerme cuando pueda, el problema que son muchas cosas las que me va dando pendiente

Eficsa, yo juraría que es la 2.5, pero si me dices como confirmarlos, te lo aseguro, de echo tengo instalado el Firebird Server Control versión 2.5.1.26351

ecfisa 28-04-2014 02:28:27

Cita:

Empezado por José Luis Garcí (Mensaje 475741)
Gracias JAvier, tendre que ponerme cuando pueda, el problema que son muchas cosas las que me va dando pendiente

Eficsa, yo juraría que es la 2.5, pero si me dices como confirmarlos, te lo aseguro, de echo tengo instalado el Firebird Server Control versión 2.5.1.26351

Hola José.

La versión figura en el Firebird Server Mananger (panel de control de windows) o podes obtenerla con la sentencia:
Código SQL [-]
SELECT RDB$GET_CONTEXT('SYSTEM', 'ENGINE_VERSION') FROM RDB$DATABASE
Por lo que mencionas, es la misma versión en que hice las pruebas, la repetí sobre la versión 2.1 y también ejecuta la consulta sin error. Pero no te preocupes, no tiene mayor importancia ya que sólo era una inquietud. Si en algún momento la uso y no lo permite ya me avisará... :)

Saludos :)

José Luis Garcí 28-04-2014 08:06:18

Cita:

Empezado por ecfisa (Mensaje 475743)
Hola José.

La versión figura en el Firebird Server Mananger (panel de control de windows) o podes obtenerla con la sentencia:
Código SQL [-]
SELECT RDB$GET_CONTEXT('SYSTEM', 'ENGINE_VERSION') FROM RDB$DATABASE
Por lo que mencionas, es la misma versión en que hice las pruebas, la repetí sobre la versión 2.1 y también ejecuta la consulta sin error. Pero no te preocupes, no tiene mayor importancia ya que sólo era una inquietud. Si en algún momento la uso y no lo permite ya me avisará... :)

Saludos :)

Lo he probado y me da la 2.5.1, pero es otra cosa que me apunto, gracias

José Luis Garcí 28-04-2014 08:24:38

Javier estuve probando lo de dar a los mese para atrás desde la fecha actual, a mi no me funcionaba del todo bien, así que estuve manoseando un poco y la modifique, quedándome así, dime si estoy equivocado, por favor


Código SQL [-]
select
CLIENTES.CODIGO, CLIENTES.NOMBRE,
SUM(FACTURA.TOTAL) AS TOTAL,

/* a partir de  aqui se ponen las columnas que se quieran */


sum( case when FACTURA.FECHA between dateadd( month , -2, current_date - EXTRACT(DAY FROM current_date) + 1) and
                                     dateadd( month , -1, current_date - EXTRACT(DAY FROM current_date) + 1)
               then FACTURA.TOTAL else 0 end ) as Mes_2,

sum( case when FACTURA.FECHA between dateadd( month , -1, current_date - EXTRACT(DAY FROM current_date) + 1) and
                                     dateadd( month , -0, current_date - EXTRACT(DAY FROM current_date) + 1)
               then FACTURA.TOTAL else 0 end ) as Mes_1,


sum( case when FACTURA.FECHA between dateadd( month , 0, current_date - EXTRACT(DAY FROM current_date) + 1) and
                                     dateadd( month , +1, current_date - EXTRACT(DAY FROM current_date) + 1)
               then FACTURA.TOTAL else 0 end ) as Mes_Actual

from FACTURA
inner join Clientes on ( Clientes.CODIGO = Factura.COdigoCliente)
where
Factura.fecha between current_date -365 and current_Date /* ajustar los días a restar al nº de columnas */
group by   CLIENTES.ID,CLIENTES.CODIGO, CLIENTES.NOMBRE

Lo que me ocurría, era que no me arrancaba desde el mes actual, sino desde el anterior tal como lo tenias, corrígeme si estoy equivocado.

fjcg02 28-04-2014 08:39:31

Sí señor, eres un crack
En mi ejemplo yo cogía desde el día 1 del mes actual hacia atrás, lo has bordado.

Respecto a la consulta que ha puesto ecfisa tiene que funcionar perfectamente, en cualquier versión desde que los romanos patrullaban en cuádriga. Estarás haciendo algo mal o se te escapará algún detalle .

Un saludo a todos

ecfisa 28-04-2014 09:21:40

Hola fjcg02.

Gracias por sacarme la duda ^\||/

Aunque creo que la mayor parte de los gestores soportan esa sintáxis, yo comenzé a usar Firebird a partir de la versión 2.0 y podía ser que antes no fuera soportada.

Saludos :)

José Luis Garcí 28-04-2014 14:08:02

La verdad es mi CENTURIÓN, es que la probé en el CREADOR SQL, de ahí es de donde puede que venga el fallo, ya que es un programa que tiene sus añitos. No dudo de que a Eficsa, le funcione, ya que es otro mostruo y no las he probado en Delphi, directamente



Si no manda nada más


La franja horaria es GMT +2. Ahora son las 10:00:40.

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