У меня есть 2 таблицы, которые мне нужно объединить и создать третий стол со столбцами, расположенными горизонтально. Таблицы являются следующие: Запрос для упорядочивания строк по горизонтали
Мне нужен выход 2 из table1
и table2
.
Я провел некоторое исследование и нашел, что мне нужно использовать PIVOT
. Я также написал несколько запросов. Мой запрос:
SELECT * FROM (
SELECT
CONVERT(CHAR(4), table_2.Date, 100) + CONVERT(CHAR(4), table_2.Date, 120) as RegistrationDate,
table_1.PDESC as ProductDescription from table_2
left outer join table_1 on table_1.PID = table_2.PID
)
tableT
PIVOT (count(ProductDescription) FOR RegistrationDate
IN ([Jan 2009],[Feb 2009],[Mar 2009],[Apr 2009],[May 2009],[Jun 2009])) AS pvt
Но этот вопрос не работает! Я также добавил скрипт SQL для создания таблиц.
Я загрузил сценарий в here.
Опубликовать сценарий к sqlfiddle.com вместо этого NSFW сайта – RichardTheKiwi
Вы никогда не должны дать * загрузите * ссылку на вопрос [so], особенно на сайт для обмена файлами. Код должен предпочтительно содержаться в самом вопросе, если он слишком длинный, вы, вероятно, должны попытаться построить более короткий пример, если это невозможно, нужно связать сайт (желательно хорошо известный с достойной репутацией), где код появляется и не нужно загружать. Если указанная ссылка на скачивание имеет код, идентичный коду в вопросе, ссылка должна быть удалена. – Dukeling
Поскольку вы выбираете из 'table_2' и присоединяетесь к' table_1', и если 'table_2.PID' является внешним ключом к' table_1.PID', вы должны изменить свое соединение на объединение INNER, поскольку никакой записи не существует в 'table_2', который не существует в' table_1'. Или измените так, что вы выбираете из таблицы_1 и левое присоединение к 'table_2', если вы хотите, чтобы продукты отображались в результатах, даже если в' table_2' нет записей. – GarethD