Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Problema con Query y Filtros (https://www.clubdelphi.com/foros/showthread.php?t=29649)

lucero_chivas 27-01-2006 16:35:39

Problema con Query y Filtros
 
Hola, por favor necesito ayuda...
Utilizo para programar el Builder q es muy similar al Delphi, asi q creo podrán ayudarme...

Tengo el problema de q ocupo sacar la suma de los datos de un campo (Pares) pero que tengan una fecha y un estatus (Dado_Baja) determinado....

Mi tabla es de la siguiente manera:

CODIGO NOMBRE DADO_BAJA FECHA_ALTA FECHA_BAJA PARES
12 LUCERO 0 26/01/2006 14

He probado varias formas como:

Poner una consulta de la siguiente manera:
Query1->SQL->Clear();
Query1->SQL->AddStrings(Memo1->Lines);
Query1->Active=true;

Memo1 contiene las siguientes lineas:

SELECT Sum (Pares) As TAlt
FROM MON2
Where Dado_Baja='0' AND
Fecha_Alta='26/01/2006'

Pero no me deja, no marca errores, pero no saca ningun resultado....

He intentado también primero filtrar el query y luego la consulta de la siguiente manera:

SELECT Sum (Pares) As TAlt
FROM MON2
Where Dado_Baja='0' AND
Fecha_Alta='26/01/2006'

Pero no me sirve, ya q me dice q el campo Fecha_Alta no se encuentra en el Query

Espero su ayuda, en verdad me urge, muchas gracias

buildero_d 27-01-2006 17:05:24

Que tal,

Antes que nada, ¿Qué base de datos utlizas? y ¿qué componentes utilizas para trabajar con dicha BD?

Saludos

lucero_chivas 27-01-2006 20:22:16

Utilizo para programar el Builder C++ 5.0

Las tablas estan en Paradox 7.0 por medio de DataBase Desktop

Los componentes q utilizo son:

TQuery
DataSource

Espero su pronta ayuda por favor, gracias

buildero_d 27-01-2006 20:28:26

Bien, pues nunca he trabajado con Paradox, pero, el ver tu consulta me surge la siguiente duda...¿el campo DADO_BAJA es de tipo entero o cadena?

Porque si es entero, en la consulta tratas de igualarlo con una cadena.

Código:

SELECT Sum (Pares) As TAlt
FROM MON2
Where Dado_Baja='0' AND    //en esta linea puede estar el error
Fecha_Alta='26/01/2006'

Podría ser asi....

Código:

SELECT Sum (Pares) As TAlt
FROM MON2
Where Dado_Baja=0 AND
Fecha_Alta='26/01/2006'

Saludos.

lucero_chivas 27-01-2006 20:56:54

El tipo es entero, y ya hice ese cambio...

Ahora no me marca errores, pero simplemente no me muestra nada...

Alguna otra sugerencia.???

lucero_chivas 27-01-2006 20:59:18

Código Delphi [-]
SELECT 
Sum (Pares) As TAlt
FROM MON2
Where Dado_Baja=0 AND 
Fecha_Alta='26/01/2006'


Asi es como lo tengo y ahora no me muestra ningún resultado...

En cuanto a la fecha, ya lo cambie y lo estoy manejando como un campo tipo Cadena, no como Fecha, para q no me causara problemas con el formato... pero... no funciona...

Por favor, necesito ayuda

buildero_d 27-01-2006 21:15:34

Ok, pues te recomiendo que si se trata de fechas, lo manejes con un campo de ese tipo, porque sino vas a tener mas problemas.

Otra preguntas:

¿el campo pares es de tipo entero?
¿tiene datos en tu tabla con los criterios que estas especificando en la consulta?

Desconozco el formato con el que paradox guarda las fechas, pero si especificas en la consulta el valor de la condición puede que debas invertir el mes por el dia, es decir en este formato mm/dd/yyyy.

Ejemplo
Código:

SELECT Sum (Pares) As TAlt
FROM MON2
Where Dado_Baja=0 AND
Fecha_Alta='01/26/2006'


Por el momento es lo que se me ocurre, tu consulta es lo sumamente sencilla como para traernos de cabeza... :D

lucero_chivas 27-01-2006 22:37:27

Otra preguntas:

¿el campo pares es de tipo entero?
El campo de pares si es de tipo entero....

¿tiene datos en tu tabla con los criterios que estas especificando en la consulta?
Si tengo datos con estos criterios...

Ya intente cambiar el formato de la fecha y continuo con el mismo problema..

Ejemplo

Código:
Cita:

SELECT Sum (Pares) As TAltFROM MON2Where Dado_Baja=0 AND Fecha_Alta='01/26/2006
'


Se que la consulta es demasiado sencilla es x esto q ya ni se q hacer!! :p

En verdad me urge, porq en mi trabajo me piden este programa para el día de hoy... ayudeme por favor!!!

lucero_chivas 27-01-2006 23:24:38

Ahora me marca el error:

"Type mismatch in expression"

A q se debe este???

marcoszorrilla 27-01-2006 23:37:56

Desde luego algún campo no corresponde al tipo que le estás indicando, como no hay más datos método de pruebas sucesivas:
1:
Código SQL [-]
SELECT Sum (Pares) As TAlt
FROM MON2
2:
Código SQL [-]
SELECT Sum (Pares) As TAlt
FROM MON2
Where Dado_Baja=0
3:
Código SQL [-]
SELECT Sum (Pares) As TAlt
FROM MON2
Where Dado_Baja=0 AND 
Fecha_Alta='01/26/2006'
Prueba con estas tres versiones supongo que al menos en la última te dará error, así será facil detectar exactamente en donde se produce éste.

Un Saludo.

lucero_chivas 27-01-2006 23:46:54

Gracias x tu comentario, lo unico malo esq ya probe estas 3 y como bien dices, en la ultima me marca el error
pero no he podido detectarlo

marcoszorrilla 27-01-2006 23:51:26

Puede influir el formato de fecha que tengas en Windows.
Código SQL [-]
'Where Fecha_alta ='+FormatDateTime('mm/dd/yyyy',MiFecha);

O esta:

Código SQL [-]
 'Where Fecha_alta ='+QuotedStr(FormatDateTime('mm/dd/yyyy',MiFecha));

lucero_chivas 27-01-2006 23:57:26

Este codigo lo pongo dentro del SQL del query??

Xq al ponerlo me marca un error:

"Invalid user of keyword.............."

Tendra algo q ver el nombre del campo?? tal vez sea muy largo para q sea procesado por el query?? o esto no es posible???


La franja horaria es GMT +2. Ahora son las 17:27:15.

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