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