簡體   English   中英

如果時間范圍內未包含該時間范圍內的數據,如何從數據庫中獲取數據?

[英]How to get data from database in time range if it's not contained before the time range?

我有一個表,其中包含一些數據,例如:

  • 產品編號
  • 運作方式
  • 日期
  • 結果(確定或否)。

我想設定一個時間范圍。 在此時間范圍內,我想按日期獲取所有產品ID的第一個結果。

之后,我想檢查整個表(也超出了時間范圍),是否有那些PID-Operation-Result“數據包”的較早測試結果,我從所選時間范圍得到了什么。 我應該怎么做?

您可以使用類似此查詢的內容

SELECT * FROM YOUR_TABLE WHERE Date Between '01/01/2016' and '10/06/2016'

您想為每個PID選擇一個記錄,最舊的。 但是,如果不在時間范圍內,即使一個ID有多個結果,您也要獲得所有結果? 那是對的嗎?

假設您正在使用SQL Server,則可以使用排名函數:

WITH CTE AS
(
    SELECT [Product ID],
           [Operation],
           [Date],
           [Result],
           RN = ROW_NUMBER() OVER (PARTITION BY [Product ID] ORDER BY [Date])
   FROM dbo.TableName
)
SELECT [Product ID], [Operation], [Date], [Result]
FROM CTE
WHERE RN = 1 OR [Date] NOT BETWEEN @BeginRange AND @EndRange

暫無
暫無

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

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