2

日付列と日付に応じた値を持つテーブルがあります。通常、2 つの日付の間でデータを選択する場合は、BETWEEN構文を使用しますが、指定した 2 つの値の間で毎日を取得します。変更することは可能ですか?それは私が与えたsopme間隔で日付をもたらしますか? たとえば、単純な場合

SELECT * FROM METABLE WHERE DATE BETWEEN '2012-06-11' AND '2012-07-11'

日付は次のようになります。

2012-06-11 myValue Stuff 
2012-06-12 myValue Stuff 
.
.
.
2012-07-11 myValue Stuff.

に変更することは可能ですか?

2012-06-11 myValue Stuff 
2012-06-18 myValue Stuff 
2012-06-25 myValue Stuff 
.
.
.
Until my end date.

これにより、私の毎週の値が得られます。どうすればそれを達成できますか?

4

2 に答える 2

3

これを試して:

MIN()およびSUM()関数でgroup byを使用できます

SELECT min(date),sum(col1),sum(col2) 
FROM   METABLE 
WHERE  [DATE] BETWEEN '2012-06-11' AND '2012-07-11'
group by datepart(ww,[DATE])


デモはここをクリック

EDIT1:

あなたのコメントによると、週から1日だけを取得したい場合。問題の例によると、月曜日です。だから私はset datefirst 1を使って月曜日に設定しています

set datefirst 1
select t.* 
from METABLE t
join
  (SELECT min([date]) as dt
   FROM METABLE 
   group by datepart(ww,[date]))a
on t.[date]=a.dt   

 set datefirst 7


デモ2

于 2012-11-07T06:53:02.340 に答える
0

datepart 関数が役立つと思います。 Datepart 関数 MSDN

于 2012-11-07T06:53:22.100 に答える