Below is a sp (on AS400) being called from Sql server 2005 using linked server. The table on the AS400 contains more than 17 mill records and 89 records are being returned in less than 1 second for a specifc job number selection)
create procedure get_jobqty
(in @jobnumber char(12))
result set 1
language sql
reads sql data
begin
declare c1 scroll cursor with return for
select gbmcu, gbsub, DECIMAL(SUM(gban01 + gban02 + gban03 +
gban04 + gban05 + gban06 + gban07 + gban08 +
gban09 + gban10 + gban11 + gban12 + gban13 +
gban14)/FLOAT(100.00),38,2) as sum_qty
from vgiprddta/f0902lc where gbmcu = @jobnumber
and gblt = 'AU' and gbobj = ' '
GROUP BY gbsub;
open c1;
set result sets cursor c1;
end;
Now I need to expand my query and obtain description for my job. New table is f0901lb and I need to match gbmcu = gmmcu (new field) and gbsub = gmsub (new field). Description field is dmdl01. I have tried using join and sub select. It returned more that 16k records. How can I do this and not get more that 89 records that my query now returns? Thank you.
create procedure get_jobqty
(in @jobnumber char(12))
result set 1
language sql
reads sql data
begin
declare c1 scroll cursor with return for
select gbmcu, gbsub, DECIMAL(SUM(gban01 + gban02 + gban03 +
gban04 + gban05 + gban06 + gban07 + gban08 +
gban09 + gban10 + gban11 + gban12 + gban13 +
gban14)/FLOAT(100.00),38,2) as sum_qty
from vgiprddta/f0902lc where gbmcu = @jobnumber
and gblt = 'AU' and gbobj = ' '
GROUP BY gbsub;
open c1;
set result sets cursor c1;
end;
Now I need to expand my query and obtain description for my job. New table is f0901lb and I need to match gbmcu = gmmcu (new field) and gbsub = gmsub (new field). Description field is dmdl01. I have tried using join and sub select. It returned more that 16k records. How can I do this and not get more that 89 records that my query now returns? Thank you.