【发布时间】:2017-08-28 13:20:47
【问题描述】:
为标题道歉,但我正在尝试做一些超出我水平的事情,即使是为了我解释它。
假设我有一张包含变量 person、foodstuff 和 amount 的表格:
Person food Amount
Mike Butter 3
Mike Milk 4
Mike Chicken 2
Tim Milk 4
John Chicken 2
通过在查询中将表与自身连接起来,我设法制作了一个列表,其中食物是新变量的基础,值是数量。上表将变为:
Person Butter Milk Chicken
Mike 3 4 2
代码大概是:
Select
a.person,
b.amount as Butter,
c.amount as Milk,
d.amount as Chicken
from PersonFoodAmount a
inner join PersonFoodAmount b on a.person = b.person
inner join PersonFoodAmount c on a.person=c.person
where b.food='Butter'
and c.food='Milk'
and d.food='Chicken'
现在,这给了我迈克,因为他勾选了所有选项。但我还需要部分匹配:
Person Butter Milk Chicken
Mike 3 4 2
Tim NULL 4 NULL
John NULL Null 2
我尝试了各种联接,包括完全外部联接,但我仍然只得到冰箱满的人。
有什么建议吗?
【问题讨论】:
-
你需要使用sql pivot...
标签: sql sql-server join