0
それを把握することはできません:id_pack = 3
は両親の子であるSQL Serverクエリ - 私は私はこのようなテーブルを持っている
id_pack start_date end_date is_parent id_contract
1 2011-11-01 2012-01-18 1 5547
2 2012-01-18 2050-01-01 1 5547
3 2009-02-02 2050-01-01 0 5547
を(そのid_packが自動インクリメントされない注意してください)。 2012-01年の両親と子供を選択するクエリを作成したいが、その子供は2倍にする必要がある(最初の親が2012-01-18で終了したため)。結果は次のようになります。
id_pack start_date end_date id_parent
1 2012-01-01 2012-01-18 0
2 2012-01-18 2012-01-31 0
3 2012-01-01 2012-01-18 1
3 2012-01-18 2012-01-31 2
私はあらゆる方法で試してみましたが、わかりません。私はこれをやっているのは、両親が別のテーブルで料金設定されているからです。今月の子供は2人の保護者がいて、料金が違うので、2012-01-01:2012-01-18から2012-01-18:2012-01-31から別の料金プランを使用してください。
これは1つのクエリでも可能ですか?
はあなたに
PSありがとう:
select c.id_pack,
case when c.start_date < '2012-01-01' then '2012-01-01'
else c.start_date
end as start_date,
case end date ...... the same as start_date as end_date,
from client a
join contract b on b.id_client = a.id_client
join package c on c.id_contract = b.id_contract
and c.start_date < dateadd(mm,1,'2012-01-01')
and c.end_date >= '2012-01-01'
where a.id_clinet = '12345'
また:どのように 'id_pack = 3 'の知っている**これは*で行をし、私はこのようなものを持っています*他の行はその親ですか?私はそれらの間のリンクを見ません..... –
私は自分の投稿を編集しました。ありがとう – pufos
ありがとう - しかし、私はまだ子行#3が他の行のどれがその親であるかを知っているのを見ていません.....そこに 'ParentID'か何かがありますか? –