Subject Re: [firebird-support] FireBird SQL help
Author Helen Borrie
At 03:37 AM 8/02/2006, you wrote:
>Hi, All
>
> I've built a stored procedure which returned the following result:
>
> ModelNo Color Size ColA ColB ColC
> 8080 Gold 48 2.5 2.2 2.4
> 8080 Gold 50 3.4 3.7 3.2
> 8080 Gun 48 0.8 0.9 0.9
>
> 8081 Blue 47 1.9 2.0 1.9
> 8081 Blue 49 2.7 3.0 2.8
>
> However there is another critera needs to be used against above
>results: if any of ColA, ColB or ColC are lower than 1.0, the whole
>group of model will be returned otherwise not, which means that Model
>8081 should not be returned to the final result, while whole records
>of Model 8080 should be returned.
>
>How can I implement this by SQL?

Do it in your store procedure, passing in your minimum value as an
argument. Then, your FOR SELECT loop would be along the lines of

FOR SELECT
BLAH1,
BLAH2,
BLAH3,
BLAH4,
BLAH5,
BLAH6
from BLAH

into :ModelNo, :Color, :Size, :ColA, :ColB, :ColC
DO
begin
if ( (ColA < MinVal or ColA is null)
or (ColB < MinVal or ColB is null)
or (ColC < MinVal or ColC is null) ) then
SUSPEND;
end
...

./heLen