in reply to Re^2: Help with Dynamic SQL subroutine
in thread Help with Dynamic SQL subroutine
You mean you have a table with columns mth_01, mth_02, ... mth_12? Looks like a perfect example of an incorrectly designed table to me. Let's suppose the pac.historyreportmonthlybysku had columns id,loc,dmdunit (primary key is the id) and there was a table pac.historyreportmonthlybyskuval with columns id,mth,qty (where mth is the number of month and qty is the value for that month, primary key is (id,mth)):
No need for dynamic SQL. So you are more likely to be able to reuse the query plan instead of forcing Oracle to recompile and reoptimize your query every time.SELECT GREATEST( ROUND(SELECT SUM(qty) FROM pac.historyreportmonthlybyskuval as hv + WHERE hv.id = h.id), ROUND(SELECT SUM(qty) FROM pac.historyreportmonthlybyskuval as hv + WHERE hv.id = h.id and mth >= ? and mth <= 11) ) QTY, b.p_dlrnet, b.p_dlrsplrcode FROM pac.historyreportmonthlybysku h -- at least use meaningfull let +ters! JOIN stsc.sku ON sku.loc = h.loc and sku.ITEM = h.dmdunit WHERE a.loc = ? AND a.dmdunit = ? GROUP BY a.loc, a.dmdunit, b.p_dlrnet, b.p_dlrsplrcode
{REM}I think I'll go crazy when I finally move to (name snipped to protect the quilty) with their 8500 tables in the database. A separate table for the usernames&passwords of each client ... oh my! And the butt that deserves to be kicked is long gone.{/REM}
|
|---|