sql server如果在另一个表中发现三列的组合,则从左表产生值?

时间:2019-06-18 12:20:59

标签: sql sql-server tsql ssis ssis-2012

我们有两个表XYZPQR。第一个有30列,第二个有15列 其中三个列名称在两者中都相同。abc。使用表XYZ的这三列的唯一组合,我需要从PQR(另一列)大于'daterange'的第二个表xyz.date中提取全部数据。表示我需要在另一个表XYZ.a,XYZ.b,XYZ.c中搜索PQR的唯一组合。

我使用了以下代码,但无法正常工作

select  c.* from PQR c  with (nolock) right   join XYZ en  with (nolock) 
on c.a=en.a and c.b=en.b and c.c=en.c and en.date>'daterange'

还尝试了下面的代码,但未返回任何内容

WITH cte AS (
  SELECT  *, 
     row_number() OVER(PARTITION BY a, b,c order by date) AS [rn]
  FROM   XYZ
)
select c.*  from PQR c  with (nolock) join cte en
on c.a=en.a and c.b=en.b and c.c=en.c
and en.[rn] =1 and en.date between dateadd(day,datediff(day,10,GETDATE()),0) and  dateadd(day,datediff(day,0,GETDATE()),0)

输出将是PQR表中的所有数据(选择投影)

0 个答案:

没有答案