Subject RE: [firebird-support] Re: Desperately Seeking FB 2.0 Beta 1 !
Author Alan McDonald
> > >> 1) What errors? You might want to list them here, perhaps it's
> > >> a known thing or perhaps there's a workaround.
>
> > > SELECT ID,STATUS FROM TRACKING WHERE CASE='123'
> > >
> > > Results:
> > > ID,STATUS
> > > ---------
> > > 12,20
> > > 13,30
> > > 14,40
> > >
> > > So far so good. But when I try this:
> > >
> > > SELECT ID,STATUS FROM TRACKING WHERE CASE='123' AND STATUS<50
> > >
> > > nothing is returned. I've recomputed indexes but no luck.
>
> > Please give us more detailed informations: platform,Tracking table
> > structure , indexes,plan etc...
> >
> > Why you use CASE as table column name ?
> > Isn't it a reserved word ?
>
> Sorry, actually the field name is 'REMOLQUE', but I was typing in a
> hurry and because I wanted to be clear, I typed in a meaningful word.
>
> I found this bug(?) while using the just released Firebird Beta 2 for
> Windows *and* Linux Classic version.
>
> As requested, here's the relevant information:
>
> -------------------------
> 'TRACKING' TABLE STRUCTURE
> -------------------------
>
> CREATE TABLE TRACKING (
> ID INTEGER NOT NULL,
> IMPEXP IMPOEXPO /* IMPOEXPO = CHAR(1) NOT NULL CHECK (VALUE
> IN ('I','E')) */,
> FECHA DATE NOT NULL,
> HORA VARCHAR(5) NOT NULL,
> TRACTOR INTEGER NOT NULL,
> REMOLQUE VARCHAR(15) NOT NULL,
> TIPOREM SMALLINT NOT NULL,
> COMPANIA SMALLINT NOT NULL,
> CAROVAC CAROVACI /* CAROVACI = CHAR(1) default 'C' NOT NULL
> CHECK (VALUE IN ('C','V','T')) */,
> CLIENTE INTEGER NOT NULL,
> AGENTE INTEGER NOT NULL,
> ORIGEN VARCHAR(15),
> DESTINO VARCHAR(15),
> OBSERVA VARCHAR(80),
> CONTROL INTEGER default 0 NOT NULL,
> STATUS SMALLINT NOT NULL,
> OPERADOR SMALLINT NOT NULL,
> PROPFORA PROPIOFORAN /* PROPIOFORAN = CHAR(1) DEFAULT 'P' NOT
> NULL CHECK (VALUE IN ('P','F')) */,
> OPERFORAN VARCHAR(25),
> CONTRAN INTEGER default 0,
> ODOMETRO INTEGER default 0,
> SALIDA INTEGER default 0 NOT NULL,
> PRONUMBER VARCHAR(20),
> HORADOCS VARCHAR(5),
> PRIORIDAD SMALLINT,
> IDTRASLA INTEGER,
> FACTURA VARCHAR(20),
> FECHAFAC DATE,
> PEDIMENTO VARCHAR(20),
> REFERENCIA VARCHAR(20)
> );
>
>
> ---------
> QUERY # 1 (RETURNS SEVERAL RECORDS WHITH STATUS < 60)
> ---------
> select id,status
> from tracking
> where remolque =563075
>
> ---------
> QUERY # 2 (NOTHING IS RETURNED)
> ---------
> select id,status
> from tracking
> where remolque =563075 and status<60
>
>
> ---------------------------
> QUERY PLAN FOR BOTH QUERIES
> ---------------------------
> PLAN (TRACKING INDEX (TRACK_REM))
>
> ---------------------------
> INDEX USED BY THE OPTIMIZER
> ---------------------------
> CREATE INDEX TRACK_REM ON TRACKING (REMOLQUE, STATUS, CONTROL);
>
>
>
> Hope this helps,
>
> -Benton
>

but remolque is a varchar
what about using where cast(remolque as numeric(18,0))<60
Alan