簡體   English   中英

Sql中的日期查詢

[英]Date query in Sql

我有一個表,其中有are 5 columns比如a,b,c,d,tran_date

我想生成一個查詢,以找出表中每個a,b,c,d的最小tran_date。

任何幫助如何做到這一點。

編輯:此查詢的結果需要從查詢結果的單個日期中減去:

  select ref_date from ref_table

如何做到這一點,因為錯誤ORA-01427: single row subquery returns more than one row

如果我理解正確,請嘗試類似的東西

SELECT  a,
        b,
        c,
        d,
        MIN(tran_date) MIN_tran_date
FROM    Table
GROUP BY    a,
            b,
            c,
            d

擴展@ astander的答案,包括額外的分段要求:

select a, b, c, d,
    min(tran_date) as min_tran_date,
    min(tran_date) - (select ref_date from ref_table) as diff
from my_table
group by a, b, c, d;

請注意, diff可以是正數或負數,具體取決於ref_date是在所有tran_date值之前,在它們之后還是在中間的某個位置。

如果你只在某些感興趣的diff值-比如,在minimnum tran_date是后ref_date -你可以添加一個having子句來篩選結果; 在這種情況下:

having min(tran_date) - (select ref_date from ref_table) > 0

或者更清楚一點:

having min(tran_date) > (select ref_date from ref_table)
SELECT A, Min(SomeDate) FROM Foo GROUP BY A

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM