DB = Oracle 11g
顶点= 4.2.6
在表格中,我有各种各样的物品,它们都很好用。不过,我现在有一组复选框(:P14_DAYS),用于一周中的每一天。我需要做的是在:P14_START_DATE :P14_END_DATE之间获取所有记录,但只有在选中的日期内才能获得记录。
下面也是DATE_SETS表的示例
http://i.stack.imgur.com/YAckN.png
因此,例如,日期01-8月14日-14-5月-8月14日,但只要求星期日和星期一日期将带回参考文献2。
BEGIN
UPDATE MD_TS_DETAIL
SET job_for = :P14_JOBFORTEM,
job_type_id = :P14_JOB_TYPE_VALUE,
account_id = :P14_ACC_VAL,
qty = :P14_HRS,
rio = :P14_RIO,
post_code = :P14_POSTCODE
WHERE id IN (SELECT D.id
FROM MD_TS_MAST M
LEFT JOIN MD_TS_DETAIL D
ON M.mast_id = D.md_id
LEFT JOIN DATE_SETS
ON ms_date = dt
WHERE eng_id = :P14_ENG_VAL
AND ms_date BETWEEN :P14_START_DATE AND :P14_END_DATE
AND DATE_SETS.col_day = ANY instr(':'||:P14_DAYS||':',Return)
END; 任何帮助都将不胜感激。
发布于 2014-11-03 19:19:51
我找到了这个示例:正如我所理解的,当您在复选框列表中选择一些值时,项目box.htm#CHDBGDJH接收值,其中包含带分隔符的所选元素的返回值。然后,您需要在查询中替换此字符串。
AND DATE_SETS.col_day = ANY instr(':'||:P14_DAYS||':',Return)使用
AND instr(':'||:P14_DAYS||':', ':'||DATE_SETS.col_day||':') > 0函数instr在字符串:P14_DAYS中搜索子字符串DATE_SETS.col_day。如果找到子字符串,则返回子字符串的位置;如果没有找到,则返回0。然后将函数的结果与0进行比较,如果结果> 0,则意味着DATE_SETS.col_day在选定的值中。
https://stackoverflow.com/questions/26715358
复制相似问题