firebird - How to combine sql queries where one query uses the MIN function -


i have read-only firebird database want extract data. in ms-access it's easy data want using 3 simple queries in output of each query input next one. want program in php , keep on 1 line want combine these 3 queries in 1 can't figure out.

the first query gives me dates starting today in company planning (max 1000 lines). jobs planned on more day's want first date today. using min function in query 2. in last query use left join combine pending jobs generated first dates.

how can in 1 query? have reading rights can't work temporary tables.

can give me directions please?

**first step** select     salesorderplan.plandate,         salesorderplan.salesorder     salesorderplan     salesorderplan.plandate >= date();  **second step** select      min([1estap].plandate) firstplandate, [1estap].salesorder      [1estap] group      [1estap].salesorder;  **third step** select     salesorder.orderno,     [2estap].firstplandate,     salesorder.description,     salesorder.deliverylocname,     salesorder.deliveryaddress,     salesorder.deliverycity     ((salesorder)     left join 2estap on (salesorder.objectid = [2estap].salesorder))     salesorder.salesstatus=1 order     salesorder.orderno; 

i have 2 tables, first called salesorder contains jobs. second called salesorderplan contains dates in planning jobnumbers.

salesorder objectid description etc 342567   blah blah  356782   jwz 384512   not in planning yet  salesorderplan objectid salesorder plandate  23451    342567     12-03-2017  23489    342567     14-04-2017  23490    356782     13-03-2017  23496    356782     18-06-2017  23499    342567     21-08-2017 23499    342567     28-08-2017  23512    356782     30-08-2017  23524    356782      2-09-2017 

i want list of orders. if there date in planning want first date after today (that used min fuct for) outcome should be

result objectid description             plandate 342567   blah blah               21-08-2017 356782   jwz                     30-08-2017 384512   not in planning yet     no date 

i should preface saying don't have experience firebird, have experience sql. might work you:

-- **third step** select     salesorder.orderno,     [2estap].firstplandate,     salesorder.description,     salesorder.deliverylocname,     salesorder.deliveryaddress,     salesorder.deliverycity, salesorder left join (     -- **second step**     select          min([1estap].plandate) firstplandate, [1estap].salesorder     (         -- **first step**         select             salesorderplan.plandate,                 salesorderplan.salesorder                     salesorderplan                     salesorderplan.plandate >= date()     ) [1estap]     group          [1estap].salesorder ) [2estap] on (salesorder.objectid = [2estap].salesorder))     salesorder.salesstatus=1 order     salesorder.orderno; 

edit

as pointed out @markrotteveel, first 2 queries can collapsed one. here's query performed:

-- **third step** select     salesorder.orderno,     [2estap].firstplandate,     salesorder.description,     salesorder.deliverylocname,     salesorder.deliveryaddress,     salesorder.deliverycity, salesorder left join (     -- **first & second steps**     select          min(plandate) firstplandate, salesorder     salesorderplan             plandate >= date()     group          salesorder ) [2estap] on (salesorder.objectid = [2estap].salesorder))     salesorder.salesstatus=1 order     salesorder.orderno; 

Comments

Popular posts from this blog

What is happening when Matlab is starting a "parallel pool"? -

angular - DownloadURL return null in below code -

php - Cannot override Laravel Spark authentication with own implementation -