Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2012, 12:58   #31
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

вот картинка (вы их любите )
Изображения
Тип файла: jpg Untitled.jpg (11.8 Кб, 134 просмотров)
eval вне форума Ответить с цитированием
Старый 02.09.2012, 13:37   #32
anton__k
Пользователь
 
Регистрация: 01.09.2012
Сообщений: 22
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
INSERT INTO таблица1 ( field1 )
SELECT 'q31231' AS Выражение1;
А если вместо 'q31231' вставить подзапрос?
У меня как только вместо фиксированного значения (по вашему примеру) появляется подзапрос - появляется ошибка.
anton__k вне форума Ответить с цитированием
Старый 02.09.2012, 14:00   #33
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Я ж писал, передделайте запрос - типа такого:
Код:
INSERT INTO main ( value1, value2, value5, value4, value3 )
SELECT TOP (1) 'тест' as value1, main.value2, 2 as value5,
(SELECT t1.ID FROM t1 WHERE t1.value2 = True),
SUM (main.value5) 
FROM main WHERE (main.value2)=#09/01/2012#
, про правильность данных не ручаюсь, т.к. не в курсе чего надо то..
eval вне форума Ответить с цитированием
Старый 02.09.2012, 14:38   #34
anton__k
Пользователь
 
Регистрация: 01.09.2012
Сообщений: 22
Радость

Цитата:
Сообщение от eval Посмотреть сообщение
Я ж писал, передделайте запрос - типа такого:
Код:
INSERT INTO main ( value1, value2, value5, value4, value3 )
SELECT TOP (1) 'тест' as value1, main.value2, 2 as value5,
(SELECT t1.ID FROM t1 WHERE t1.value2 = True),
SUM (main.value5) 
FROM main WHERE (main.value2)=#09/01/2012#
, про правильность данных не ручаюсь, т.к. не в курсе чего надо то..
Так вопрос в этом и заключался
Цитата:
Сообщение от anton__k Посмотреть сообщение
Огромное спасибо.
Запрос:
INSERT INTO main ( value1, value2, value5, value4, value3 )
SELECT 'тест' as value1, #09/01/2012# as value2, 2 as value5,
(SELECT t1.ID FROM t1 WHERE t1.value2 = True),
SUM (main.value5) FROM main WHERE (main.value2)=#09/01/2012#;

Работает корректно.
Это правильная структура? т.е. одно из значений получаемое в результате SELECT'а должно относится к основному (первому) SELECT'у, а остальные к внутренним.
Засунуть все во внутренние SELECT'ы и оставить основной без FROM - не получится.
при использовании TOP (1) не добавитcя ничего, если таблица изначально будет пустой. К тому же TOP (1) в связке с SUM не имеет смысла т.к. SUM вернет одно значение в любом случае.

Последний раз редактировалось anton__k; 02.09.2012 в 14:41.
anton__k вне форума Ответить с цитированием
Старый 02.09.2012, 14:50   #35
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Код:
при использовании TOP (1) не добавитcя ничего, если таблица изначально будет пустой.
А не важно есть топ или нет, не добавится в любом случае, и топ я поставил потому как еще раз говорю, не знаю чего надо то, и для "поддержки штанов" (т.е. для наглядности, читать то вы справку не желаете).

Последний раз редактировалось eval; 02.09.2012 в 14:52.
eval вне форума Ответить с цитированием
Старый 02.09.2012, 14:57   #36
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
т.е. одно из значений получаемое в результате SELECT'а должно относится к основному (первому) SELECT'у, а остальные к внутренним.
нет, неважно что к чему относится, главное чтобы запрос был правильный.
eval вне форума Ответить с цитированием
Старый 02.09.2012, 15:01   #37
anton__k
Пользователь
 
Регистрация: 01.09.2012
Сообщений: 22
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
Код:
при использовании TOP (1) не добавитcя ничего, если таблица изначально будет пустой.
А не важно есть топ или нет, не добавится в любом случае
Так добавляется же.
anton__k вне форума Ответить с цитированием
Старый 02.09.2012, 15:01   #38
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

http://office.microsoft.com/ru-ru/ac...001032245.aspx
Действительно без FROM нельзя. Написали же в одном из вариантов SUM, вот и используйте его
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.09.2012, 15:04   #39
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
Так добавляется же.
при пустой main ?
eval вне форума Ответить с цитированием
Старый 02.09.2012, 15:16   #40
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
Действительно без FROM нельзя.
см #30 и #31. Тут либо чего то неправильно делаем, либо действительн с подзапросом дела туги.
из ссылки "Источник или конечный_объект может быть таблицей или запросом.", т.е. можно обмануть наверное и это. типа:
Код:
INSERT INTO таблица1 ( field1, field2 )
SELECT [Запрос2] AS f2,  'qweqwe' as f1;
, проверить только надо...
eval вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос на добавление Slame Помощь студентам 4 20.11.2011 23:01
Запрос на добавление Slame Microsoft Office Access 3 15.11.2011 11:24
Запрос на добавление Insightful Microsoft Office Access 9 30.04.2010 18:17
Добавление (запрос) warshadow Microsoft Office Access 8 23.10.2009 01:15
запрос на добавление William Microsoft Office Access 3 13.07.2007 22:00