Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较来自2个不同表的2个SQL查询结果_Sql - Fatal编程技术网

比较来自2个不同表的2个SQL查询结果

比较来自2个不同表的2个SQL查询结果,sql,Sql,有人能告诉我应该做什么来比较这两个查询的结果吗 我想知道结果是否相同 我计划创建一个SP,在将其插入表之前,它将首先确定两个查询的结果是否相同 问题1: SELECT TOP 10 EventName, EventDate FROM EventTBL WHERE EventType ='Bday' AND EventDate >= getdate() -30 问题2: SELECT (Ename + ' ' + Lname),

有人能告诉我应该做什么来比较这两个查询的结果吗

我想知道结果是否相同

我计划创建一个SP,在将其插入表之前,它将首先确定两个查询的结果是否相同

问题1:

SELECT TOP 10 
    EventName, EventDate 
FROM 
    EventTBL 
WHERE 
    EventType ='Bday' 
    AND EventDate >= getdate() -30
问题2:

SELECT 
    (Ename + ' ' + Lname), 
    DATEADD(YY, DATEPART(YYYY, GETDATE()) - 
    DATEPART(YYYY,dateOfBirth), dateOfBirth) 
FROM 
    EmpTBL 
WHERE 
    DATEADD(Year, DATEPART(Year, GETDATE()) - 
         DATEPART( Year, DateOfBirth), DateOfBirth)  
    BETWEEN CONVERT(DATE, GETDATE()) 
        AND CONVERT( DATE, GETDATE() + 30)

我建议您在连接两个表的地方构建一个SQL,并根据结果执行所需的操作

例如:

SELECT 
    event.EventName as eName, event.EventDate as eDate, 
    emp.Ename + ' ' + emp.Lname as empName, emp.empdateOfBirth as empBirth
FROM 
    EventTBL event INNER JOIN EmpTBL emp ON event.pk = emp.fk 
如果这两个表未联接,则可以在其他一些字段上联接

SELECT 
    event.EventName as eventName, event.EventDate as eventDate, 
    emp.Ename + ' ' + emp.Lname as empName, emp.empdateOfBirth as empBirth
FROM 
    EventTBL event INNER JOIN EmpTBL emp ON evnt.eventDate = emp.empBirth 
您还可以在日期字段上使用DATEADD/DATEDIFF来进行一些特殊的日期比较。记住为这些日期字段编制索引以优化联接操作

为连接添加WHERE子句和其他子句,您将得到所需的结果


如果要存储结果,请使用DBMS SQL语法将其构建到insert中。它可以是:INSERT-INTO-SELECT-FROM、SELECT-INTO-FROM或其他INSERT-SQL语法,具体取决于您的需要和DBMS。如果查询结果不产生任何行,则不会进行插入。

使用标记dbms。(这里有一些非ANSI SQL…)什么样的比较?Emp名称明智吗?您可以发布结果。比较集合的最简单方法是使用集合操作,例如,如果
SELECT#1
中也存在
SELECT#2
中的所有行,则除SELECT#2之外的
SELECT#1将生成一个空集。