无VBA访问查询
我对无关表上的数据库查询有疑问。
这次需要VBA没有使用(需求来自我的经理),这使得它很难。无VBA访问查询
我的查询必须返回5列数据。 前4个列直接从前一个查询的输出中检索,因此很容易。
Query Q_STOP_LOSS: Year Contr_Pool_ID Contr_Ins_ID COUNTRY Employees STOP_LOSS
2010 Crédit Agricole CIB QUATREM 2 6024
2010 Crédit Agricole CIB QUATREM 2 6024
2010 Amada CO LTD MALAKOFF MEDERIC 4 1320
2010 Amada CO LTD MALAKOFF MEDERIC 4 1320
2010 Amada CO LTD MALAKOFF MEDERIC 4 1320
的所谓“STOP_LOSS”最后一列是问题,因为填充在里面的值应该从一个不相关的表基于检索在WHERE子句。 它应该包含另一个不包含相等字段的表中的SL值。 该表被称为T_STOP_LOSS并列出间隔。
Table: T_STOP_LOSS ID LIVES_FROM LIVES_TO NR_COUNTRIES_FROM NR_COUNTRIES_TO SL_VALUE
1 0 999 2 2 39,3
12 0 999 3 3 34,6
23 0 999 4 4 29,6
34 0 999 5 9 25,7
45 0 999 10 100 22,17
46 1000 1499 2 2 31,1
2 1000 1499 3 3 27,4
13 1000 1499 4 4 23,3
24 1000 1499 5 9 20,4
35 1000 1499 10 100 17,5
当 “国家” 和 “雇员” 的值(列3 & 4,作为先前查询的结果)位于所述间隔分别为 “LIVES_FROM/LIVES_TO” AND “NR_COUNTRIES_FROM/NR_COUNTRIES_TO” 之间,然后应该返回的是相应的SL_Value。我无法弄清楚,因为这两个表之间没有相应的字段,我这次不允许使用VBA。 为了让它更难,“LIVES_FROM/LIVES_TO”和“NR_COUNTRIES_FROM/NR_COUNTRIES_TO”包含相关表的ID。
任何想法如何将这列添加到查询中而不使用VBA ...? 我试图使用查询工具和SQL视图,但我无法获得正确的结果(使用VBA会轻松很多,而且我不是使用Access自己最方便的一个)。
让我知道我的问题不清楚!
回答:
如何:
SELECT (SELECT TOP 1 sl_value FROM t_stop_loss t
WHERE q.country BETWEEN nr_countries_from AND nr_countries_to
AND q.employees BETWEEN lives_from AND lives_to) AS stop_loss,
q.year,
q.contr_pool_id,
q.contr_ins_id,
q.country,
q.employees
FROM q_stop_loss q
以上是 无VBA访问查询 的全部内容, 来源链接: utcz.com/qa/261391.html