#sql #sql-server #tsql #merge
Вопрос:
SELECT * INTO "2020_to_2021_divvy_tripdata"
FROM
(MERGE [PortfolioDB].[dbo].['202008-divvy-tripdata
Я хочу, чтобы он взял данные с 202008 года и объединил их с 202007 годом, чтобы одна таблица просто была объединена в нижней части другой, но в ней указан неправильный синтаксис рядом с *. Я перепробовал все свои предыдущие наборы инструментов, такие как изменение комбинаций квадратных скобок и тому подобное.
Обе таблицы отформатированы одинаково, имена столбцов совпадают.
Я попытался эмулировать код отсюда. В конце концов, я объединю несколько месяцев друг с другом, чтобы создать таблицу за полный год.
Комментарии:
1. Я никогда не видел такого кода. Какую базу данных вы используете?
2. @GordonLinoff Я предполагаю, что sqlserver по ссылке в вопросе...
3. вы уверены, что хотите объединить данные или добавить их вместо этого?
4. Пожалуйста, отметьте базу данных. Чтобы вы начали, что происходит, когда вы бежите
SELECT @@VERSION
? Обратите внимание, что такой вещи, как "дно" таблицы, не существует. Записи возвращаются в порядке того, что у вас есть в вашемORDER BY
Ответ №1:
У вас INSERT VALUES()
есть две проблемы...
- Вы должны вставлять из
[202007]
(источника), а не из[202008]
(места назначения) - Вы не можете использовать
[202007].*
, вы должны перечислить все столбцы по отдельности
Затем вам нужно OUTPUT
предложение MERGE
, чтобы сделать его данные доступными для внешнего запроса.
Вот демонстрационная версия: db<>скрипка<>
Вот потенциальная возможность переписать ваше заявление...
INSERT INTO
"2020_to_2021_divvy_tripdata"
SELECT
*
FROM
(
MERGE [PortfolioDB].[dbo].['202008-divvy-tripdata
] as "202008"
USING [PortfolioDB].[dbo].['202007-divvy-tripdataЯ хочу, чтобы он взял данные с 202008 года и объединил их с 202007 годом, чтобы одна таблица просто была объединена в нижней части другой, но в ней указан неправильный синтаксис рядом с *. Я перепробовал все свои предыдущие наборы инструментов, такие как изменение комбинаций квадратных скобок и тому подобное.
Обе таблицы отформатированы одинаково, имена столбцов совпадают.
Я попытался эмулировать код отсюда. В конце концов, я объединю несколько месяцев друг с другом, чтобы создать таблицу за полный год.
Комментарии:
1. Я никогда не видел такого кода. Какую базу данных вы используете?
2. @GordonLinoff Я предполагаю, что sqlserver по ссылке в вопросе...
3. вы уверены, что хотите объединить данные или добавить их вместо этого?
4. Пожалуйста, отметьте базу данных. Чтобы вы начали, что происходит, когда вы бежите
SELECT @@VERSION
? Обратите внимание, что такой вещи, как "дно" таблицы, не существует. Записи возвращаются в порядке того, что у вас есть в вашемORDER BY
Ответ №1:
У вас INSERT VALUES()
есть две проблемы...
- Вы должны вставлять из
[202007]
(источника), а не из[202008]
(места назначения) - Вы не можете использовать
[202007].*
, вы должны перечислить все столбцы по отдельности
Затем вам нужно OUTPUT
предложение MERGE
, чтобы сделать его данные доступными для внешнего запроса.
Вот демонстрационная версия: db<>скрипка<>
Вот потенциальная возможность переписать ваше заявление...
] as "202007" on [202007].ride_id = [202008].ride_id
WHEN NOT MATCHED THEN
INSERT VALUES ([202008].*)
Я хочу, чтобы он взял данные с 202008 года и объединил их с 202007 годом, чтобы одна таблица просто была объединена в нижней части другой, но в ней указан неправильный синтаксис рядом с *. Я перепробовал все свои предыдущие наборы инструментов, такие как изменение комбинаций квадратных скобок и тому подобное.
Обе таблицы отформатированы одинаково, имена столбцов совпадают.
Я попытался эмулировать код отсюда. В конце концов, я объединю несколько месяцев друг с другом, чтобы создать таблицу за полный год.
Комментарии:
1. Я никогда не видел такого кода. Какую базу данных вы используете?
2. @GordonLinoff Я предполагаю, что sqlserver по ссылке в вопросе...
3. вы уверены, что хотите объединить данные или добавить их вместо этого?
4. Пожалуйста, отметьте базу данных. Чтобы вы начали, что происходит, когда вы бежите
SELECT @@VERSION
? Обратите внимание, что такой вещи, как "дно" таблицы, не существует. Записи возвращаются в порядке того, что у вас есть в вашемORDER BY
Ответ №1:
У вас INSERT VALUES()
есть две проблемы...
- Вы должны вставлять из
[202007]
(источника), а не из[202008]
(места назначения) - Вы не можете использовать
[202007].*
, вы должны перечислить все столбцы по отдельности
Затем вам нужно OUTPUT
предложение MERGE
, чтобы сделать его данные доступными для внешнего запроса.
Вот демонстрационная версия: db<>скрипка<>
Вот потенциальная возможность переписать ваше заявление...
] as "202008"
USING [PortfolioDB].[dbo].['202007-divvy-tripdata
] as "202008"
USING [PortfolioDB].[dbo].['202007-divvy-tripdataЯ хочу, чтобы он взял данные с 202008 года и объединил их с 202007 годом, чтобы одна таблица просто была объединена в нижней части другой, но в ней указан неправильный синтаксис рядом с *. Я перепробовал все свои предыдущие наборы инструментов, такие как изменение комбинаций квадратных скобок и тому подобное.
Обе таблицы отформатированы одинаково, имена столбцов совпадают.
Я попытался эмулировать код отсюда. В конце концов, я объединю несколько месяцев друг с другом, чтобы создать таблицу за полный год.
Комментарии:
1. Я никогда не видел такого кода. Какую базу данных вы используете?
2. @GordonLinoff Я предполагаю, что sqlserver по ссылке в вопросе...
3. вы уверены, что хотите объединить данные или добавить их вместо этого?
4. Пожалуйста, отметьте базу данных. Чтобы вы начали, что происходит, когда вы бежите
SELECT @@VERSION
? Обратите внимание, что такой вещи, как "дно" таблицы, не существует. Записи возвращаются в порядке того, что у вас есть в вашемORDER BY
Ответ №1:
У вас INSERT VALUES()
есть две проблемы...
- Вы должны вставлять из
[202007]
(источника), а не из[202008]
(места назначения) - Вы не можете использовать
[202007].*
, вы должны перечислить все столбцы по отдельности
Затем вам нужно OUTPUT
предложение MERGE
, чтобы сделать его данные доступными для внешнего запроса.
Вот демонстрационная версия: db<>скрипка<>
Вот потенциальная возможность переписать ваше заявление...
] as "202007" on [202007].ride_id = [202008].ride_id
WHEN NOT MATCHED THEN
INSERT VALUES ([202008].*)
Я хочу, чтобы он взял данные с 202008 года и объединил их с 202007 годом, чтобы одна таблица просто была объединена в нижней части другой, но в ней указан неправильный синтаксис рядом с *. Я перепробовал все свои предыдущие наборы инструментов, такие как изменение комбинаций квадратных скобок и тому подобное.
Обе таблицы отформатированы одинаково, имена столбцов совпадают.
Я попытался эмулировать код отсюда. В конце концов, я объединю несколько месяцев друг с другом, чтобы создать таблицу за полный год.
Комментарии:
1. Я никогда не видел такого кода. Какую базу данных вы используете?
2. @GordonLinoff Я предполагаю, что sqlserver по ссылке в вопросе…
3. вы уверены, что хотите объединить данные или добавить их вместо этого?
4. Пожалуйста, отметьте базу данных. Чтобы вы начали, что происходит, когда вы бежите
SELECT @@VERSION
? Обратите внимание, что такой вещи, как «дно» таблицы, не существует. Записи возвращаются в порядке того, что у вас есть в вашемORDER BY
Ответ №1:
У вас INSERT VALUES()
есть две проблемы…
- Вы должны вставлять из
[202007]
(источника), а не из[202008]
(места назначения) - Вы не можете использовать
[202007].*
, вы должны перечислить все столбцы по отдельности
Затем вам нужно OUTPUT
предложение MERGE
, чтобы сделать его данные доступными для внешнего запроса.
Вот демонстрационная версия: db<>скрипка<>
Вот потенциальная возможность переписать ваше заявление…
] as «202007»
ON [202007].ride_id = [202008].ride_id
WHEN NOT MATCHED THEN
INSERT VALUES ([202007].x, [202007].y, [202007].z)
OUTPUT
inserted.*
)
merge_inserted
] as «202008»
USING [PortfolioDB].[dbo].[‘202007-divvy-tripdataЯ хочу, чтобы он взял данные с 202008 года и объединил их с 202007 годом, чтобы одна таблица просто была объединена в нижней части другой, но в ней указан неправильный синтаксис рядом с *. Я перепробовал все свои предыдущие наборы инструментов, такие как изменение комбинаций квадратных скобок и тому подобное.
Обе таблицы отформатированы одинаково, имена столбцов совпадают.
Я попытался эмулировать код отсюда. В конце концов, я объединю несколько месяцев друг с другом, чтобы создать таблицу за полный год.
Комментарии:
1. Я никогда не видел такого кода. Какую базу данных вы используете?
2. @GordonLinoff Я предполагаю, что sqlserver по ссылке в вопросе…
3. вы уверены, что хотите объединить данные или добавить их вместо этого?
4. Пожалуйста, отметьте базу данных. Чтобы вы начали, что происходит, когда вы бежите
SELECT @@VERSION
? Обратите внимание, что такой вещи, как «дно» таблицы, не существует. Записи возвращаются в порядке того, что у вас есть в вашемORDER BY
Ответ №1:
У вас INSERT VALUES()
есть две проблемы…
- Вы должны вставлять из
[202007]
(источника), а не из[202008]
(места назначения) - Вы не можете использовать
[202007].*
, вы должны перечислить все столбцы по отдельности
Затем вам нужно OUTPUT
предложение MERGE
, чтобы сделать его данные доступными для внешнего запроса.
Вот демонстрационная версия: db<>скрипка<>
Вот потенциальная возможность переписать ваше заявление…
] as «202007» on [202007].ride_id = [202008].ride_id
WHEN NOT MATCHED THEN
INSERT VALUES ([202008].*)
Я хочу, чтобы он взял данные с 202008 года и объединил их с 202007 годом, чтобы одна таблица просто была объединена в нижней части другой, но в ней указан неправильный синтаксис рядом с *. Я перепробовал все свои предыдущие наборы инструментов, такие как изменение комбинаций квадратных скобок и тому подобное.
Обе таблицы отформатированы одинаково, имена столбцов совпадают.
Я попытался эмулировать код отсюда. В конце концов, я объединю несколько месяцев друг с другом, чтобы создать таблицу за полный год.
Комментарии:
1. Я никогда не видел такого кода. Какую базу данных вы используете?
2. @GordonLinoff Я предполагаю, что sqlserver по ссылке в вопросе…
3. вы уверены, что хотите объединить данные или добавить их вместо этого?
4. Пожалуйста, отметьте базу данных. Чтобы вы начали, что происходит, когда вы бежите
SELECT @@VERSION
? Обратите внимание, что такой вещи, как «дно» таблицы, не существует. Записи возвращаются в порядке того, что у вас есть в вашемORDER BY
Ответ №1:
У вас INSERT VALUES()
есть две проблемы…
- Вы должны вставлять из
[202007]
(источника), а не из[202008]
(места назначения) - Вы не можете использовать
[202007].*
, вы должны перечислить все столбцы по отдельности
Затем вам нужно OUTPUT
предложение MERGE
, чтобы сделать его данные доступными для внешнего запроса.
Вот демонстрационная версия: db<>скрипка<>
Вот потенциальная возможность переписать ваше заявление…