Я пытаюсь выполнить PIVOT (работает под управлением SQL Server 2008) на нескольких таблицах и без какой-либо совокупной функции. Я должен быть честным, я немного из моей глубины здесь, и я изо всех сил, чтобы определить проблему таким образом фигуру, я просто должен прыгать и показать вам свои вещи (oooeeer), во-первых, у меня есть три таблицы:SQL PIVOT на нескольких таблицах
CHARTER_vessels
===============
vesselID vesselName
-------- ----------
1 The Titanic
2 The Pinafore
3 The Black Pearl
CHARTER_rateDateRange
=====================
rateDateRangeID rateDateRangeName
--------------- -----------------
1 Spring 2012
2 Summer 2012
3 Fall 2012
CHARTER_rates
=============
vesselID rateDateRangeID rateCost
-------- --------------- --------
1 1 434
1 2 445
1 3 231
2 1 675
2 2 545
2 3 768
3 1 543
3 2 654
3 3 658
И выход я пытаюсь достичь, что ставки для каждой лодки появляются в колонке для каждого сезона, как это:
vesselName Spring 2012 Summer 2012 Fall 2012
---------- ----------- ----------- ---------
The Titanic 434 445 231
The Pinafore 675 545 768
The Black Pearl 543 654 658
Очевидно, что я хотел бы иметь возможность сортировать результат, установленный различными столбцы, если это возможно!
Привет JStead, Во-первых, большое спасибо, что нашли время, чтобы ответить подробно и, во-вторых, для собирается лишнюю милю с двумя примерами! – Bob
Hi JStead, Во-первых, большое спасибо за то, что нашли время, чтобы ответить подробно, а во-вторых, за то, что вы прошли лишнюю милю с ДВАМИ примерами! Я работал со вторым примером и возвратил две строки для каждого судна (с правильной ценой в каждом столбце для обоих судов), мне пришлось сделать одно изменение, чтобы заставить запрос работать, поскольку одно из соединений давало ошибка (я изменил CHARTER_vessels AS cv ON cv.vesselID = crd.vesselID в CHARTER_vessels AS cv ON cv.vesselID = cr.vesselID). (Придется переместить код в отдельную запись из-за ограничений по длине :) – Bob
Хорошо, ограничения по длине настолько строгие Я не могу на самом деле повторно вставить образец кода - извините за это! Еще раз спасибо за вашу помощь Bob – Bob