Ниже приводится предположение об уникальности судна и диапазоне дат.Если это не так, и вы не хотите объединять сводку, это не для вас. (rateCost) является требованием для использования сводной таблицы SQL Server.Для SQL Server должен существовать механизм, который решает, что возвращать, если на судне имеется несколько одинаковых диапазонов дат.Если этого не происходит, совокупность действительно бессмысленна.Другим вариантом будет серия самостоятельных соединений.Дайте мне знать, если вам нужно увидеть решение для самостоятельного соединения.
SELECT src.vesselName,pvt.[Spring 2012], pvt.[Summer 2012], pvt.[Fall 2012]
FROM
(select vesselName, rateCost, rateDateRangeName
from CHARTER_rateDateRange crd
inner join CHARTER_rates cr on cr.rateDateRangeID = crd.rateDateRangeID
inner join CHARTER_vessels cv on cv.vesselID = crd.vesselID) AS src
PIVOT
(
max(rateCost)
FOR rateDateRangeName IN ([Spring 2012], [Summer 2012], [Fall 2012])
) AS pvt;
А почему бы и нет, если кто-то еще столкнется с этим, это решение для самостоятельного объединения.Предупреждение не оптимизировано.
with joinMe as (
select vesselName, rateCost, rateDateRangeName
from CHARTER_rateDateRange crd
inner join CHARTER_rates cr on cr.rateDateRangeID = crd.rateDateRangeID
inner join CHARTER_vessels cv on cv.vesselID = crd.vesselID
)
select a.vesselName,a.rateCost as 'Spring 2012',b.rateCost as 'Summer 2012',c.rateCost as 'Fall 2012'
from joinMe a
inner join joinMe b on b.vesselName= a.vesselName
and b.rateDateRangeName = 'Summer 2012'
inner join joinMe c on c.cesselName = a.vesselName
and c.rateDateRangeName = 'Fall 2012'
where a.rateDateRangeName = 'Spring 2012'
Из-за ограничения размера я напишу здесь ответ на запрос.Что следующее возвращает вам что-либо с количеством больше 1?
select vesselName, rateDateRangeName,count(rateCost)
from CHARTER_rateDateRange crd
inner join CHARTER_rates cr on cr.rateDateRangeID = crd.rateDateRangeID
inner join CHARTER_vessels cv on cv.vesselID = cr.vesselID
group by vesselName,rateDateRangeName
order by count(rateCost) desc