0
我有这样的一个表:(注意id_pack不自动递增)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 = 3
是父母双方的子女。我想查询选择2012-01个月的父母和孩子,但孩子需要翻倍(因为他的第一个父母在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
我已经尝试了各种方式,我无法弄清楚。我这样做是因为父母在另一张桌子上被分配了一个价格费率,而在当月这个孩子有两个价格不同的父母,所以我需要从2012-01-01:2012-01-18使用利率计划和2012-01-18:2012-01-31使用另一个利率计划。
这甚至可能有一个查询?
谢谢
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'知道**这* *其他行是其父项?我没有看到他们之间的任何联系..... – 2012-03-06 11:31:46
我编辑了我的文章。谢谢 – pufos 2012-03-06 11:35:28
谢谢 - 但我仍然没有看到子行#3如何知道哪些其他行是它的父母.....是不是有'ParentID'或表中的东西? – 2012-03-06 11:36:28