1
我有一个SQL Server数据库表,其中需要将Vaccination Name
列的值转换(pivot?)到各自的列中。然后我需要使用Vaccination Date
的值填充这些列。我不是一个程序员,我的研究没有找到符合我需要的东西。枢轴列填充来自另一列的值
表例如
我有一个SQL Server数据库表,其中需要将Vaccination Name
列的值转换(pivot?)到各自的列中。然后我需要使用Vaccination Date
的值填充这些列。我不是一个程序员,我的研究没有找到符合我需要的东西。枢轴列填充来自另一列的值
表例如
有几种方法可以得到每个接种每个宠物的最大日期。最简单的可能是使用某种条件逻辑与集合功能:
select
Pet_Name,
Bordetella = max(case when Vaccination_Name = 'Bordetella' then Vaccination_Date end),
CanineDistemper = max(case when Vaccination_Name = 'Canine Distemper' then Vaccination_Date end),
Rabies = max(case when Vaccination_Name = 'Rabies' then Vaccination_Date end)
from <table>
group by Pet_Name;
或者因为你使用SQL Server,你可以使用旋转功能:
select Pet_name,
Bordetella, [Canine Distemper], Rabies
from
(
select
Pet_Name,
Vaccination_Name,
Vaccination_Date
from <table>
) d
pivot
(
max(Vaccination_Date)
for Vaccination_Name in (Bordetella, [Canine Distemper], Rabies)
) piv;
双方将返回相同的结果给你。我甚至创建了一个demo供你玩。
太棒了!谢谢! – user7963586
每个疫苗接种有多个日期,您想要显示哪个日期? – ollie
@ollie。我应该提供更多细节。我需要将疫苗名称分列的原因是表中的每只宠物只需要一行。他们目前有多个。一个示例截图在这里 - http://imgur.com/a/eaEq5。谢谢! – user7963586
你想要每个宠物/疫苗组合的最大日期吗?如果一只宠物有多个狂犬病疫苗入境,你想要哪一个? – ollie