繁体   English   中英

SQL-在MIN(Date)处取对应的值

[英]SQL - Take Corresponding Value Where MIN(Date)

我有一个数据集,其中包含给定日期的给定仓库的仓库位置,日期和库存水平。

如何构造SQL查询,在每个仓库最早的日期结束时,我会列出一系列不同的位置及其库存水平? 我在想...

SELECT Warehouse_id,(inventory_amt,其中min(date)为TRUE)作为库存

来自库存表

GROUP BY Warehouse_id

我喜欢为此使用row_number()top (1) with ties

SELECT TOP (1) WITH TIES it.*
FROM inventory_table it
ORDER BY ROW_NUMBER() OVER (PARTITION BY warehouse_id ORDER BY date DESC);

您也可以这样表示:

select it.*
from inventory_table it
where it.date = (select max(it2.date)
                 from inventory_table it2
                 where it2.warehouse_id = it.warehouse_id
                );

尝试这样的事情

select warehouse_id,....
from  inventory_table t1
inner join (
select warehouse_id, min(date) from  inventory_table group py warehouse_id
) min
on t1.warehouse_id=min.warehouse_id

这为我工作:

proc sql;
CREATE TABLE inventory_by_warehouse AS
SELECT
    a.warehouse_id
    ,a.inventory_amt
FROM inventory_table as a
WHERE a.date = 
    (SELECT min(date)
    FROM inventory_table
    WHERE warehouse_id = a.warehouse_id);
quit;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM