簡體   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