我们有两个表XYZ
和PQR
。第一个有30列,第二个有15列
其中三个列名称在两者中都相同。a
,b
,c
。使用表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
表中的所有数据(选择投影)