2017-04-25 40 views
0

在蜂房,我有一个查询来获取产品如何使用子查询获得的时间差在蜂巢

SELECT min(expire_date) FROM warehouse WHERE product='Salad' 

的分日期和得到的结果“2017年3月4日”。

我也有一个查询来获取所有产品的日期diff和它工作

SELECT product, import_date, datediff(import_date, '2017-01-01')+1, product from warehouse WHERE product='Salad'; 

但我当想把日期DIFF结合:

SELECT product, import_date, datediff(import_date, 'SELECT min(expire_date) FROM warehouse WHERE product=\'Salad\'')+1, from warehouse WHERE product='Salad'; 

我将有以下:

Salad 2017-04-23 NULL 
Salad 2017-04-23 NULL 
Salad 2017-04-18 NULL 

为什么datediff不能计算datediff了,任何人都有想法?由于

回答

0

使用窗口功能:

SELECT product, import_date, datediff(import_date, min(expire_date) over (partition by salad)) 
FROM warehouse 
WHERE product = 'Salad'; 

的字符串是不会被解释为一个子查询。

(你可以加1,如果这是你真正想要的逻辑做的。)

0

这应该得到期望的结果

SELECT w.product, w.import_date, datediff(w.import_date, t.min_date)+1, from warehouse w, (SELECT min(expire_date) as min_date FROM warehouse WHERE product='Salad') t WHERE w.product='Salad';