Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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
我可以在执行sql语句时选择给定行和列的数据吗_Sql_Tsql - Fatal编程技术网

我可以在执行sql语句时选择给定行和列的数据吗

我可以在执行sql语句时选择给定行和列的数据吗,sql,tsql,Sql,Tsql,为了澄清标题,在where子句的select语句中,我需要使用另一个select来验证我正在对其执行操作的表。在第二个选择中,我必须找到所有的次要ID Declare @id INT --inserting values in temp table SELECT rn = ROW_NUMBER() OVER (ORDER BY adt_trl_dt_tm), * INTO #Temp FROM dbo.EVNT_HSTRY ORDER BY adt_trl_dt_tm DESC

为了澄清标题,在where子句的select语句中,我需要使用另一个select来验证我正在对其执行操作的表。在第二个选择中,我必须找到所有的次要ID

Declare @id INT

--inserting values in temp table
SELECT
   rn = ROW_NUMBER() OVER (ORDER BY adt_trl_dt_tm),
   *
INTO #Temp
FROM dbo.EVNT_HSTRY
ORDER BY adt_trl_dt_tm DESC 

--Searching for items that are deleted and have not been restored
SELECT *
FROM dbo.EVNT_HSTRY hstry
WHERE evnt_hstry_cd LIKE '3' and
adt_trl_dt_tm   > (SELECT adt_trl_dt_tm FROM dbo.EVNT_HSTRY WHERE evnt_id = evnt_id

DROP TABLE #Temp
为了澄清代码,
evnt\u id
是外键。主键是
evnt\u Hstry\u id
evnt\u hstry\u cd
3表示已删除。我试图做的是通过与所有具有相同
evnt\u id
adt\u trl\u dt\u tm
字段进行比较,查看正在读取的行的字段
adt\u trl\u dt\u tm
是否是最新的

我正在进行选择的表是存储事件历史的表。在这里,我们可以说事件何时被添加、修改、删除和/或恢复

遗憾的是,我无法在我的应用程序中这样做,因为此语句正在SSIS中运行


总的来说,我需要将
adt\u trl\u dt\u tm
与另一个
adt\u trl\u dt\u tm
具有相同
evnt\u id

SELECT *
FROM dbo.EVNT_HSTRY hstry
WHERE evnt_hstry_cd LIKE '3' and
not exists (select 1 from EVNT_HSTRY WHERE hstry.evnt_id = evnt_id
AND Hstry.adt_trl_dt_tm > adt_trl_dt_tm)
如果代码3是hstry中最新的条目,则将导致行读取;如果最近的行没有代码3,则不会导致行读取


如in=如果完全匹配,则更改

谢谢,我认为这成功了,我将不得不进行更深入的测试,但它看起来不错。
SELECT *
FROM dbo.EVNT_HSTRY hstry
WHERE evnt_hstry_cd = '3' and
adt_trl_dt_tm   = (
                    SELECT max(adt_trl_dt_tm) FROM dbo.EVNT_HSTRY WHERE evnt_id = hstry.evnt_id
              )