我有一个问题,我找到了一个相当长的解决方案,我认为这不是一个好的做法。但是我觉得必须有一种可用的语法能够立即解决这个问题而没有太多的复杂性。我已经多次遇到这个问题,我想一劳永逸地知道。
我有一个名为“T_STOP_LOSS”的表,其中有三列“LIVES_FROM”、“LIVES_TO”和“SL_VALUE”(所有数字类型+包含具有自动编号类型的 ID 的列)。我想检索包含 SL_VALUE 的记录,其中变量值位于 LIVES_FROM 和 LIVES_TO 之间的间隔中。
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
36 1500 1999 2 2 23,6
47 1500 1999 3 3 20,7
3 1500 1999 4 4 17,7
14 1500 1999 5 9 15,4
25 1500 1999 10 100 13,3
26 2000 2999 2 2 23,6
37 2000 2999 3 3 20,7
48 2000 2999 4 4 17,7
4 2000 2999 5 9 15,4
15 2000 2999 10 100 13,3
通常我会使用:
lNr_Lives = <Something> '(Retrieved via Textbox)
sSQL_Select = "SELECT SLVALUE FROM T_STOP_LOSS WHERE LIVES_FROM <= " & LNr_Lives & " AND LIVES_TO >= " & LNr_Lives & ";"
但是,LIVES_FROM 和 LIVES_TO 通过外键与表 NR_LIVES 相关联。
上面的语句永远不会起作用,因为表 'NR_LIVES' 包含一个 ID 字段作为主键,用于链接到 T_STOP_LOSS 表。(NR_LIVES 中的列被命名为:ID、NR_LIVES_FROM 和 NR_LIVES_TO(没关系))。
ID NR_LIVES_FROM NR_LIVES_TO
1 0 999
2 1000 1499
3 1500 1999
4 2000 2999
请告诉我,您认为访问存储在 NR_LIVES 表中的 LIVES_FROM 和 LIVES_TO 的实际值并让我的 SELECT 语句按我期望的方式工作的最简单方法是什么(返回包含 SL 的记录正确的间隔)。
我希望我的问题很清楚。如果没有,请毫不犹豫地提及。