0
tsqlを使用して、メンバーが30日間のウィンドウ内の3つの別々のバケットからのサービスを持っているかどうかを調べようとしています。バケットは必ずしも一意の値を保持するとは限りません。下の私の例では、メンバ1はウィンドウ内に3つの日付をすべて持っていませんが、メンバ2はそうしています。あなたはこれが本当であるメンバーをしたい場合は、これは一つの方法である日付がスパン内にあるかどうかを調べる
create table #dates (
member tinyint,
bucket tinyint,
dt date
);
insert into #dates (member,bucket,dt)
values (1,1,'20170101'),
(1,2,'20161225'),
(1,2,'20170204'),
(1,3,'20170129'),
(2,1,'20170101'),
(2,2,'20170102'),
(2,3,'20161231');
INITIAL QUERY
select *
from #dates d1 join
#dates d2
on d2.member=d1.member and d2.bucket=2 and
d2.dt between DATEADD(DAY,-30,d1.dt) and DATEADD(day,30,d1.dt)
where d1.bucket=1
メンバー1が2つの#2バケツを持って、それは意図的なものでしょうか?また、どのように出力テーブルが表示されると思いますか?インジケータフィールドを持つメンバーごとに1つの行? – Snorex