2017-04-25 61 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';