我有存储在Excel 2500 OBJ号码,我需要运行SQL下面的列表:
SELECT
a.objno,
a.table_comment,
b.queue_comment
FROM
aq$_queue_tables a
JOIN
AQ$_QUEUES b ON a.objno = b.table_objno
WHERE
a.objno = 19551;
有什么办法,我可以写从列表或从不同的表objno喂养对上面的SQL的循环?我也想存储/生产全部由运行作为一个单一的输出每个循环的结果。
我认为选择的号码上传到一个新表并添加一个WHERE条件:
a.objno=(SELECT newtab.objectno FROM newtab);
不过,我会在查询中编写逻辑将排除某些objectno结果。比方说,相关objectno有一定queue_comment
与该objectno相关的某些日期。我并不想拉这个纪录。这种情况会匹配一些objectno并不会与其他人相匹配。有了这样的条件,运行查询针对所有objectno正在返回0的结果。我不能共享原始的逻辑,因为它会显示一定的业务规则,这将是违反一些政策的。
所以,我需要单独运行每个objectno查询并合并结果。
我完全新的SQL和分配了这项任务。我知道正规循环的,在SQL,但我不认为我可以在这种情况下应用它们。
任何指导或引用链接到有用的主题是非常赞赏为好。
先谢谢您的帮助。
一种选择是从Excel工作表对象号上传到数据库中的表和运行查询如下。假设NEWTAB是其中objectno上传该表。
SELECT
a.objno,
a.table_comment,
b.queue_comment
FROM
aq$_queue_tables a JOIN AQ$_QUEUES b on a.objno = b.table_objno
WHERE
a.objno IN (SELECT newtab.objectno FROM newtab);
我在这里使用子查询,加入到含水$可以正常工作。
阅读注释和所有我认为你需要,以提高您的Excel额外的2列载到新表。
在可得如下方式使用:
SELECT
a.objno,
a.table_comment,
b.queue_comment
FROM
aq$_queue_tables a
JOIN
AQ$_QUEUES b ON a.objno = b.table_objno
WHERE
(a.objno,a.table_comment,b.queue_comment) IN (19551,'something','something');
所以与新表将是:
WHERE
(a.objno,a.table_comment,b.queue_comment) IN
(select n.objno, n.table_comment, n.queue_comment from new_table n)