示例数据:
id parent child total isParent isParentCHildthing
1 J NA 5 1 1
1 B NA -5 0 1
1 J NA -10 1 1
1 B NA 10 0 1
2 X NA -1 1 1
2 Y NA 1 0 1
3 Z NA 6 0 1
3 W NA 7 0 1
3 P NA -6 1 1
3 R NA -7 1 1
3 TT YY 500 0 0
期望的输出:
id parent child total
1 J B 5
1 J B -10
2 X Y -1
3 P Z -6
3 R W -7
在psuedo / english中,对于给定id中的每个“pair”,我想要父母和父母的总价值,与父母一起的“孩子”将由isparent = 0 and total = total*-1 where isParent = 1
确定
欢迎任何建议
答案 0 :(得分:1)
根据您的要求,您所需要的只是一个简单的自我联接,以找到可以与每个父母配对的一个孩子。
SELECT p.id, p.parent, c.parent AS child, p.total
FROM MyTable p
LEFT OUTER JOIN MyTable c
ON c.isParent=0
AND c.id=p.id
AND c.Total = p.Total*-1
WHERE p.isParent=1
请注意,如果有2个或更多父母具有相同的ID和相同的总数,则此查询将“中断”,但根据您的要求,我假设不会发生。