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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2013, 20:59   #1
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию MS SQL Server Management Studio: добавление пользовательских данных

Добрый вечер, дорогие форумчане!
Я хотела бы проконсультироваться с Вами: мне надо добавить данные в таблицу, причем часть данных получаем выборкой из таблицы, часть вводим "вручную".
Есть таблица Продажи, и мы в конце для добавляем из нее в таблицу Архив все продажи текущего дня, и устанавливаем в другой столбец архивной таблицы значение поля статус=4 (означает, что товар учтён на складе).
У меня получается что добавление в таблицу Архив только выборкой из таблицы отрабатывает успешно:
Код:
SET DATEFIRST 1;
INSERT INTO tArchive (idSale)
VALUES (SELECT idSale from tSale WHERE idSale.Saledate = DATEPART(dw,GETDATE()) )
А там, где я прописываю в значениях "установить поле статуса равном 4"(это именно int) - выдает ошибку:
Код:
SET DATEFIRST 1;
INSERT INTO tArchive (idSale, idStatus)
VALUES (SELECT idSale from tSale WHERE idSale.Saledate = DATEPART(dw,GETDATE()),4 )
Текст ошибки:
Цитата:
Сообщение 156, уровень 15, состояние 1, строка 7
Incorrect syntax near the keyword 'SELECT'.
Сообщение 102, уровень 15, состояние 1, строка 8
Incorrect syntax near ','.
Каким образом можно граммотно добавлять в таблицу такие смешанные данные?
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 02.05.2013, 21:29   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Наверно так надо
Код:
INSERT INTO tArchive (idSale)
  SELECT idSale from tSale WHERE idSale.Saledate = DATEPART(dw,GETDATE())

INSERT INTO tArchive (idSale, idStatus)
  SELECT idSale,4 from tSale WHERE idSale.Saledate = DATEPART(dw,GETDATE())
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.05.2013, 22:10   #3
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Нет, так он не хочет.
Цитата:
Invalid column name 'idSale'.
Может, можно эту четверку как-то через параметр передать?

Дорогой Аватар, мне нужен запрос номер 2. Номер 1 это так, для примера - как среда понимает и работает. Проблема начинается, когда я пытаюсь вручную вписать четверку
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan

Последний раз редактировалось Blondy; 02.05.2013 в 22:12.
Blondy вне форума Ответить с цитированием
Старый 02.05.2013, 22:18   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
INSERT INTO tArchive (idSale, idStatus)
  SELECT idSale,4 from tSale WHERE idSale.Saledate = DATEPART(dw,GETDATE())
Ну нет алиаса idSale. Обычная описка. А формат с VALUES (SELECT ...) первый раз в глаза вижу. Почти уверен, что так нельзя, по крайней мере никогда так не делал
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 02.05.2013 в 22:21.
Аватар вне форума Ответить с цитированием
Старый 02.05.2013, 22:32   #5
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Ой, дорогой Аватар, я только что собиралась писать, что я наконец-то "сама дошла, на лыжах".
Правда я на всякий случай поменяла в запросе поля местами, и четверку пустила вперед, чтобы не мешалась.
Но все равно - спасибо Вам огромное. А тот вариант, который я предлагала в самом начале - была у меня где-то ссылка на похожее решение, но я ее благополучно куда-то замылила....
Плюс Вам добавить не могу((((
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 02.05.2013, 22:42   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Плюс Вам добавить не могу
А и не надо. Мне Ой, дорогой Аватар гораздо больше нравится
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MS SQL Server Management Studio. групповая функция Vesnushkamil SQL, базы данных 1 31.03.2013 10:45
Microsoft SQL Server Management Studio 2008 Guren Помощь студентам 2 09.01.2013 07:16
Microsoft SQL Server Management Studio 2008 Guren SQL, базы данных 0 04.01.2013 14:25
имя сервера в SQL Server Management Studio Express Алиса. Помощь студентам 4 12.06.2011 19:52
MC SQL Server Management Studio gezhel SQL, базы данных 4 29.03.2010 18:58