Вставка SQL VB.net с использованием значений select AND - PullRequest
0 голосов
/ 06 апреля 2011

Впервые в использовании SQL, и у меня возникли проблемы с выполнением чего-то, что, как я полагал, было бы простым.

Я пытаюсь создать и вставить, которая вставит значение MAX () из первого столбца в одну таблицу, чтобыпервый столбец в другой таблице, в то время как остальные столбцы будут заполнены параметрами.

Я попытался переключить свой код, чтобы посмотреть, был ли у меня неправильный синтаксис, но мне не повезло, и я 'Я даже не уверен, что то, что я пытаюсь сделать, возможно (по крайней мере, одним INSERT).

Вот что у меня есть на данный момент:

INSERT INTO [Table2] VALUES(SELECT(Number FROM [Table1] WHERE Max(Number)), @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10)

Ответы [ 2 ]

1 голос
/ 06 апреля 2011

оператор выбора должен быть заключен в скобки, и я рекомендую всегда помещать список столбцов в оператор вставки

Insert into [MyTable] (Max,Value1,Value2,Value3) values((select Max(Number) from Table1),@p1,@p2,@p3)
0 голосов
/ 06 апреля 2011

Первый: оператор SELECT MAX неверен, правильный синтаксис:

SELECT Max(Number) From [Table1]

Второе: синтаксис INSERT неверен. Чтобы использовать подзапрос, вы должны выбрать значения для каждого поля в таблице назначения, а если вы используете ключевое слово VALUES , вам нужно указать поле для вставки значения.

Итак, ваш запрос должен выглядеть примерно так:

INSERT INTO [Table2] 
SELECT Max(Number), @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10 From [Table1]

ИЛИ (я использую меньший параметр по практическим соображениям)

INSERT INTO [Table2] (field1,field2,field3)
VALUES
(@MAX, @p1, @p2)

где @MAX - переменная, содержащая результат

SELECT Max(Number) From [Table1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...