2017-08-16 24 views
1

のための保存/登録サブクエリはのは、私はほとんど変更されない製品コストと店を持っていると言うので、私はを設定するには、次のようになりますテーブルのコスト最後に更新されたときに、現在のコストの出力とは、私はこれを行うことができます:SQLiteの:繰り返し使用

SELECT items.name, cost, latestdate 
FROM items 
LEFT NATURAL JOIN (
    SELECT itemid, costs.cost, latestdate 
    FROM (
     SELECT itemid, MAX(date) as latestdate 
     FROM costs 
     GROUP BY itemid 
    ) 
    LEFT NATURAL JOIN costs 
    WHERE date = latestdate 
); 

このクエリが何かのように書くことができるようにサブクエリを節約することが可能です

SELECT items.name, cost, latestdate 
FROM items 
LEFT NATURAL JOIN get_current_cost(); 

また、 "コスト・ビフォア・日付" の状況で:

CREATE VIEW current_cost AS 
SELECT itemid, cost, MAX(date) AS latestdate 
FROM costs 
GROUP BY itemid; 

(。、SQLiteのでa bare column in an aggregate query works

SELECT items.name, cost 
FROM items 
LEFT NATURAL JOIN (
    SELECT itemid, costs.cost, latestdate 
    FROM (
     SELECT itemid, MAX(date) as latestdate 
     FROM costs 
     GROUP BY itemid 
     WHERE date < *somedate* 
    ) 
    LEFT NATURAL JOIN costs 
    WHERE date = latestdate 
); 

-- Change To 

SELECT items.name, cost 
FROM items 
LEFT NATURAL JOIN get_cost_by(*somedate*) 

答えて

1

そのことがviewと呼ばれていますただし、パラメータを使用することはできません。

+0

ありがとうございます!適切な検索用語を見つけることは、常に最も難しい部分です: - / –

関連する問題