Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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_Date_Max_Teradata - Fatal编程技术网

SQL选择每个存储的最后日期

SQL选择每个存储的最后日期,sql,date,max,teradata,Sql,Date,Max,Teradata,我有一个数据库,每行包含一个站点号、产品代码、库存日期和库存数量。对于单个站点和产品代码,可以有20个左右的条目,每个条目具有不同的日期 我需要返回所有站点编号,但只返回包含最新日期的记录 我在谷歌上搜索过,我在这里读过多篇文章,似乎都有相同类型的查询,但没有找到适合我的解决方案。我要么只得到2个结果(与最长日期匹配的2个),要么仍然得到所有结果(所有日期和站点) 使用Teradata SQL助手 下面是select语句,它将返回产品代码1234的所有条目 SELECT Site_No,

我有一个数据库,每行包含一个站点号、产品代码、库存日期和库存数量。对于单个站点和产品代码,可以有20个左右的条目,每个条目具有不同的日期

我需要返回所有站点编号,但只返回包含最新日期的记录

我在谷歌上搜索过,我在这里读过多篇文章,似乎都有相同类型的查询,但没有找到适合我的解决方案。我要么只得到2个结果(与最长日期匹配的2个),要么仍然得到所有结果(所有日期和站点)

使用Teradata SQL助手

下面是select语句,它将返回产品代码1234的所有条目

SELECT Site_No, 
       Product_code, 
       Stock_Date,
       Stock_Qty 
FROM Stock_Levels
where Product_code = 1234

在Teradata中,标准SQL有一个很好的扩展,用于过滤窗口聚合函数的结果,
QUALIFY

SELECT Site_No, 
       Product_code, 
       Stock_Date,
       Stock_Qty 
FROM Stock_Levels
where Product_code = 1234
QUALIFY
   ROW_NUMBER() 
   OVER (PARTITION BY Site_No           -- for each site
         ORDER BY Stock_Date DESC) = 1  -- get the highest date

我只是想感谢你的时间,我尝试了给出的两个答案,它们都非常有效。感谢你的时间,这非常有效-非常感谢。
SELECT Site_No, 
       Product_code, 
       Stock_Date,
       Stock_Qty 
FROM Stock_Levels
where Product_code = 1234
QUALIFY
   ROW_NUMBER() 
   OVER (PARTITION BY Site_No           -- for each site
         ORDER BY Stock_Date DESC) = 1  -- get the highest date