【问题标题】:TSQL - Loop over column to query other tableTSQL - 循环列以查询其他表
【发布时间】:2016-10-14 09:41:59
【问题描述】:

我被以下任务困住了:

  1. 用户通过 Excel 键入 ID,然后单击按钮(宏)以触发 SP 或函数
  2. 这个ID通常“返回”不止一行
  3. 从这个结果中,我需要单个列的值 (LookupNumber) 以便使用这些值来查询或加入另一个视图。需要循环播放吗?
  4. 因此我想将初始 ID 请求表与另一个查询表的结果连接起来。

在下图中,第一个表包含用户想要搜索的 ID。 第二个表应通过从表 A 中检索到的 LookupNumber 值进行查询。

第三个表格显示了所需的输出:

我遇到的问题是,一旦通过了搜索 ID,我如何循环(如果需要)通过 LookupNumber?我不知道我应该使用什么方法来完成这项任务。

因为 sqlfiddle 似乎不起作用,所以我将上面屏幕截图中的表格放在了这个 link

希望你能给我一些解决这个问题的想法。

【问题讨论】:

  • 我不明白这里问的是什么,您在链接示例中使用 SQL 代码生成了“所需的输出”...?你想让我们做什么?
  • 问题是如何遍历第一个查询中返回的 LookupNumber 列。
  • SQL 并没有真正按照您建议的方式“循环”记录,您也没有解释这种“循环”的目的。如果不是您的问题中已有的,您想要的输出是什么?要么您还有其他未解释的要求,要么您已经有了所需的输出并且不需要任何帮助。
  • 所以你想要一组包含两个ID 列、两个Project 列的行,...。会不会导致一些问题?您是在问如何在LookupNumber 上执行INNER JOIN

标签: sql-server excel sql-server-2008 tsql


【解决方案1】:

这样的事情应该可以工作:

select t1.*, t2.*
from table2 t2
inner join (
    select ID, Subject, Project, LookupNumber
    from table1
    where id = <entered id>
) t1 on t1.LookupNumber = t2.LookupNumber

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-11
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多