【问题标题】:SQL Select using combination of values from row in different tableSQL选择使用不同表中行中的值组合
【发布时间】:2016-01-14 18:12:34
【问题描述】:

很难在标题中解释。新手在这里。

我有一个有 2 列的临时表。

| numdoc | linha |
| 1      |  5    |
| 233423 |  7    |
| 34663  |  4    |

现在我需要使用这些值来进行这样的选择:

select *
from wgcdoclinhas
where numdoc in (numdoc from #temptable) 
  and linagrup (linha from #temptable)

我希望它返回值与#temptable 中的值匹配但不混合值的行。因为我写的查询并没有区分。每行只有一个结果。

我的 #temptable 中有 300 行,我想要的结果是要显示 300 行。

我希望在上述#temptable 上运行的查询结果将显示 3 行,每个 #temptable 各一行。

  • numdoc=1 和 linagrup=5 的情况下有 1 个结果,
  • numdoc=233423 和 lnagrup=7 的另一个
  • 最后是 numdoc=34663 和 linagrup=4 的另一个

如果这还不够清楚,我知道,希望如此。

谢谢。

【问题讨论】:

  • 如果您包含带有期望输出的示例数据,将很容易理解。特别是我们不知道 wgcdoclinhas 表上有什么

标签: sql-server sql-server-2008-r2 ssms


【解决方案1】:

您可以简单地将临时表连接到您的表中,您将获得所需的结果:

select w.*
from wgcdoclinhas w 
inner join #temptable t
    on w.numdoc = t.numdoc AND w.linha = t.linha

【讨论】:

    【解决方案2】:

    如果您使用 JOIN 查询,您的问题将得到解决。

    SELECT A.numdoc,A.numdoc 
    FROM wgcdoclinhas A,#temptable T
    WHERE A.numdoc = T.numdoc AND A.linha = T.linha
    

    【讨论】:

      猜你喜欢
      • 2020-09-30
      • 2023-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-08
      • 1970-01-01
      相关资源
      最近更新 更多