我有以下表格:SQL與TOP的ID從JOIN WHERE子句
-- t_products
prod_id ... name ... price
--------------------------
1 Prod1 23.2
2 Prod2 11.5
3 Prod3 10.0
4 Prod4 4.43
-- t_products_lists
list_id ... prod_id ... date_created
1 1 2016-02-01
2 1 2015-31-12
3 3 2015-01-01
4 3 2015-12-01
5 4 2014-02-05
6 4 2012-24-06
7 2 2016-11-10
我需要的是從t_products_lists
讓所有有date_created < 2016-01-01
(2,3,4,5,6)的行。
現在,從這些結果,我只需要prod_id
與最新date_created
,用於複製prod_id
的所有組。將需要從t_products
得到name
和price
,並返回date_created
。
結果應該是:
prod_id ... name ... price ... date_created
-------------------------------------------
1 Prod1 23.2 2015-31-12 (the only one before 2016-01-01)
3 Prod3 10.0 2015-12-01 (the latest date)
4 Prod4 4.43 2014-02-05 (the latest date)
我想加入這樣的表至今:
SELECT COUNT(prod.prod_id), prod.name, prod.price, prodlist.date_created
FROM t_products_lists prodlist
INNER JOIN t_products prod ON prodlist.prod_id = prod.prod_id
WHERE prodlist.date_created < CONVERT(DATETIME,'01.01.2016 23:59:59.997',0)
GROUP BY prod.prod_id, art.name, art.price, prodlist.date_created
,但現在我不知道我怎麼能只得到了prod_id
與最新日期,因爲使用此查詢它只會返回所有ID 01.01.2016