Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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 server中自动更新表的列_Sql_Sql Server - Fatal编程技术网

在SQL server中自动更新表的列

在SQL server中自动更新表的列,sql,sql-server,Sql,Sql Server,我有两个问题,第一个是返回代码,最后一个是价格 SELECT s.art_code AS CODE ,max(s.DocD_PUHTB) AS PRIX ,max(s.Docd_date) AS DATE FROM documentd s INNER JOIN ( SELECT s2.art_code ,MAX(s2.Docd_date) AS MaxDate FROM documentd s2 GROUP BY s2.art_code

我有两个问题,第一个是返回代码,最后一个是价格

SELECT s.art_code AS CODE
    ,max(s.DocD_PUHTB) AS PRIX
    ,max(s.Docd_date) AS DATE
FROM documentd s
INNER JOIN (
    SELECT s2.art_code
        ,MAX(s2.Docd_date) AS MaxDate
    FROM documentd s2
    GROUP BY s2.art_code
    ) md ON s.art_code = md.art_code
    AND s.Docd_date = md.MaxDate
    AND s.doc_num LIKE '%bla%'
WHERE s.docd_date >= '2019-01-01'
GROUP BY s.art_code
ORDER BY s.Art_Code
第二个查询使用第一个查询的结果更新另一个表

UPDATE art
SET art_pv = (
        CASE 
            WHEN art_code = '000022215163'
                THEN 3.608
            WHEN art_code = '0013123'
                THEN 5.932
            WHEN art_code = '082005'
                THEN 2.929
            WHEN art_code = '10001862'
                THEN 0.663
            END
        )
我的问题是,第二个查询更新查询如何从第一个查询动态选择查询中获取结果代码和价格,并每小时自动执行此操作?

对于问题一:

使用此查询==>

SELECT s.art_code as CODE, max(s.DocD_PUHTB)as PRIX, max(s.Docd_date) as DATE
FROM documentd s 
Where s.doc_num like '%bla%' and s.docd_date >= '2019-01-01'
GROUP BY s.art_code
关于问题二:

在t1中插入,并由on使用:

SELECT s.art_code as CODE, max(s.DocD_PUHTB)as PRIX, max(s.Docd_date) as DATE ,CASE 
        WHEN art_code = '000022215163'
            THEN 3.608
        WHEN art_code = '0013123'
            THEN 5.932
        WHEN art_code = '082005'
            THEN 2.929
        WHEN art_code = '10001862'
            THEN 0.663
        END
    ) as NewCol
Into #t1
FROM documentd s 
Where s.doc_num like '%bla%'
GROUP BY s.art_code

Update documentd 
Set art_pv = #t1.NewCol
From #t1

我已经跟踪了到您的rextester的链接,但是列和数据不太匹配。我做了一个测试

我想你的意思是:

update art
set art_pv =  n.prix
from art a, 
(SELECT s.art_code AS art_code
    ,max(s.DocD_PUHTB) AS PRIX
    ,max(s.Docd_date) AS DATE
FROM documentd s
INNER JOIN (
    SELECT s2.art_code as art_code
        ,MAX(s2.Docd_date) AS MaxDate
    FROM documentd s2
    GROUP BY s2.art_code
    ) md ON s.art_code = md.art_code
    AND s.Docd_date = md.MaxDate
    AND s.doc_num LIKE '%bla%'
WHERE s.docd_date >= '2019-01-01'
GROUP BY s.art_code) n
where n.art_code = a.art_code;

若要按计划运行此查询,您可以。

SQL Server代理作业将非常有用,如果您不使用Express编辑谢谢您的帮助,但第二个查询如何从First query DynamicCallyUpdate获取代码和价格可以有一个from子句,from子句可以完全是一个子查询,在这种情况下,哪一个应该是第一个查询。select查询返回许多记录我如何从何处执行该操作?我尝试了此查询,但没有结果,请帮助我向您提问,先生,如果您能帮助我了解更多我如何在sql server中每小时自动运行此查询?我已更新此问题以回答每小时运行的问题。