2016-07-27 12 views
0

の間にあるとき、私はこのようなテーブルを持っているすべての合計を取得します。日付が与えられた二つの値の

date   val 

2016-1-1  8 
2016-2-1  10 
2016-1-2  30 
2016-1-3  30 

は今、私は別のテーブルから入ってくる二つの日付を持っている、のはfromdatetwo date

それらを呼びましょうFROMDATE 1、 2016-1-1たとTODATEは 2016-1-2た場合

、Iは

私は確認する必要があり、最終的な値として8 + 30 = 38が必要

これらの値のSUM(val)は、fromdateとtwodateの間の日付に対応します。

私はこの試みた:

SELECT nr.sku AS ParentSKU 
SUM(gasessiondata.sessions) as visitsWhenSKUWasOnline 
FROM 
Erp.new_ranking nr 
LEFT JOIN 
Temp.NumberOfDaysOnline ndo 
ON 
ndo.sku = nr.sku 
JOIN 
gadb.gasessiondata gasessiondata 
ON 1=1 
WHERE 
ndo.FromDate Is NOT NULL 
AND 
ndo.ToDate IS NOT NULL 
AND 
gasessiondata.date >= ndo.FromDate 
AND 
gasessiondata.date <= ndo.ToDate 
GROUP BY nr.sku 

をしかし、勿論、これは正しくありません。

+0

@Strawberry:日付は日付データ型としてのみ格納されます。 –

+1

これで、なぜfromとfromの値がテーブルから来るのかわからないのですが? – Strawberry

+0

gasessiondataは私に特定の日付のセッションを与えるでしょう。もう1つのテーブルでは、2つの日付が表示され、訪問の総数を確認する必要があります。つまり、クエリでは、2つの日付の間に日付の値の合計が表示されます。 @イチゴ –

答えて

0

結合式で日付を渡すことはできませんが、サブクエリであなたは合計を取得します:

SELECT ndo.sku ParentSKU, 
    (
    SELECT SUM(gasessiondata.sessions) as s 
    FROM gasessiondata 
    gasessiondata.date >= ndo.FromDate 
    AND 
    gasessiondata.date <= ndo.ToDate 
) as visitsWhenSKUWasOnline 
FROM Temp.NumberOfDaysOnline ndo 

私はあなたのテーブルの構造を理解していないし、あなたのテーブルが明確に記載されていないが、私は、Adobeのクエリが役立つと思います。

関連する問題