相关疑难解决方法(0)

对基于时间的数据的不同方法的表现

我在这个查询的另一个问题的答案中,在PerformanceDBA的声明中提出这个问题:

SELECT  ProductId,
        Description
    FROM  Product       p,
          ProductStatus ps
    WHERE p.ProductId = ps.ProductId  -- Join
    AND   StatusCode  = 2             -- Request
    AND   DateTime    = (             -- Current Status on the left ...
        SELECT MAX(DateTime)          -- Current Status row for outer Product
            FROM  ProductStatus ps_inner
            WHERE p.ProductId = ps_inner.ProductId
            )
Run Code Online (Sandbox Code Playgroud)

使用ProductStatus表只保存状态随时间变化的有效(开始)日期,将超过此查询:

SELECT  ProductId,
        Description
    FROM  Product       p,
          ProductStatus ps
    WHERE p.ProductId = ps.ProductId  -- Join
    AND   StatusCode  = 2             -- Request
    AND   getdate() BETWEEN DateFrom AND Dateto …
Run Code Online (Sandbox Code Playgroud)

sql-server sybase database-design

3
推荐指数
2
解决办法
1629
查看次数

标签 统计

database-design ×1

sql-server ×1

sybase ×1