SQL选择使用不同表中行的值组合

时间:2016-01-14 18:12:35

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

很难在标题中解释。纽布在这里。

我有一个包含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一个。

  • 1结果为numdoc = 1且linagrup = 5,
  • 另一个用于numdoc = 233423和lnagrup = 7
  • 最后是numdoc = 34663和linagrup = 4

我理解这是不是很清楚,希望它是。

感谢。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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