Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.
Внимание! Некоторое время письма не доходят до аккаунтов MAIL RU GROUP, не доходят на все почтовые ящики mail.ru, inbox.ru, bk.ru. Пишите им жалобы, чтобы быстрее восстановили получение писем, регистрируйтесь через яндекс почту и gmail, туда письма с активизацией доходят.

Вернуться   Форум программистов > .NET > Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate)
Регистрация

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

Ответ
 
Опции темы
Старый 05.11.2017, 11:35   #1
Grinvel
Пользователь
 
Регистрация: 25.09.2017
Сообщений: 16
Репутация: 10
По умолчанию Занесение данных из одной таблицы в другую

БД Access. Нужно занести из 2 таблицы в 1 значения сумм столбца в соответствии с условием.

Код:

CommandText = "UPDATE Table1 Set [Жидкий вес отливок] = SUM(Table2.[Общий жидкий вес]) Where Table2.[Номер плавки] = [Номер плавки] Group By Table2.[Номер плавки]";

Возникает ошибка: "Пропущен символ ";" в конце инструкции SQL"

Смотрел примеры использования функции SUM в запросах, но не нашёл ни 1 с использованием в запросе UPDATE.

Последний раз редактировалось Grinvel; 05.11.2017 в 13:05.
Grinvel вне форума   Ответить с цитированием
Старый 05.11.2017, 12:22   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,106
Репутация: 6385
По умолчанию

И что твое Table2 означает в запросе? Так пробуй:
Код:

UPDATE Table1
  INNER JOIN (SELECT [Номер плавки], SUM([Общий жидкий вес]) Вес FROM Table2 GROUP BY [Номер плавки]) T2 ON T2.[Номер плавки] = Table1.[Номер плавки]
SET [Жидкий вес отливок]=T2.Вес

__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар на форуме   Ответить с цитированием
Старый 05.11.2017, 13:04   #3
Grinvel
Пользователь
 
Регистрация: 25.09.2017
Сообщений: 16
Репутация: 10
По умолчанию

что из себя представляет "Вес"? Поле, значение?
Grinvel вне форума   Ответить с цитированием
Старый 05.11.2017, 13:06   #4
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,106
Репутация: 6385
По умолчанию

Поле конечно, синоним посчитанной суммы
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар на форуме   Ответить с цитированием
Старый 05.11.2017, 13:13   #5
Grinvel
Пользователь
 
Регистрация: 25.09.2017
Сообщений: 16
Репутация: 10
По умолчанию

не совсем понял, куда записывается сумма, поля для её хранения нет в таблицах
на участке запроса "SUM([Общий жидкий вес]) Вес" возникает ошибка синтаксиса
Grinvel вне форума   Ответить с цитированием
Старый 05.11.2017, 13:23   #6
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,106
Репутация: 6385
По умолчанию

Цитата:
не совсем понял, куда записывается сумма, поля для её хранения нет в таблицах
Записывается во временную таблицу в памяти или в базе, как и результат любого вложенного запроса.
Цитата:
на участке запроса "SUM([Общий жидкий вес]) Вес" возникает ошибка синтаксиса
Сделай AS Вес и для вложенного запроса AS T2. Возможно для access нельзя опускать слово as, не помню.
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар на форуме   Ответить с цитированием
Старый 05.11.2017, 13:57   #7
Grinvel
Пользователь
 
Регистрация: 25.09.2017
Сообщений: 16
Репутация: 10
По умолчанию

Код:

CommandText = "UPDATE Table1 " +
                           "INNER JOIN (SELECT [Номер плавки], SUM([Общий жидкий вес]) AS Вес FROM Table2 GROUP BY [Номер плавки]) AS T2 ON T2.[Номер плавки] = Table1.[Номер плавки] " +
                            "SET [Жидкий вес отливок] = T2.Вес";

"Несоответствие типа в выражении"

Типы полей числовые. Может ли возникать ошибка из-за вложенного запроса?

Открытие соединений и обработка запроса происходит в отдельной процедуре.
Код:

private void ConnectPlav(string CommText, Dictionary<string, string> bdParam, bool chGrid)  //процедура выполнения запросов к БД карт плавок
        {
            CommandText = CommText;
            OleDbConnection conn = new OleDbConnection(ConnectionStringPlav);       
            conn.Open();
            OleDbCommand MyCommand = new OleDbCommand();                        
            MyCommand.Connection = conn;
            MyCommand.CommandText = CommandText;
            foreach (var param in bdParam)                                    
            {
                MyCommand.Parameters.AddWithValue(param.Key, param.Value);
            }
            if (CommandText.Contains("UPDATE") || CommandText.Contains("DELETE") || CommandText.Contains("INSERT"))
            {
                MyCommand.ExecuteNonQuery();                                   
            }
            else
            {
                OleDbDataAdapter dataAdapter = new OleDbDataAdapter();          
                dataAdapter.SelectCommand = MyCommand;
                DataSet ds = new DataSet();                                    
                dataAdapter.Fill(ds);
                if (chGrid)
                    GridNumPlav.DataSource = ds.Tables[0].DefaultView; 
                else
                    GridDetInPlav.DataSource = ds.Tables[0].DefaultView;
            }
            conn.Close(); 
        }

Насколько я понял, при вложенных запросах, в первую очередь обрабатываются самые глубокие. Тогда на какой блок нужно отправлять запрос с вложениями: обработки update- или select-запросов?
Grinvel вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос данных из одной таблицы в другую с изменением формата отображения данных Tsvetulya Microsoft Office Excel 4 06.07.2016 17:30
перенос данных из одной таблицы в другую jawa250t БД в Delphi 1 09.03.2013 14:32
MS SQL SERVER 2005 копирование таблицы из ОДНОЙ БД В другую или перенести все строки из одной таблицы в другую reihtmonbern БД в Delphi 4 17.07.2012 23:25
Копирование данных из одной таблицы в другую Arega Microsoft Office Access 0 11.07.2012 17:01
Передача данных из одной таблицы в другую, при выборе одной ячейки MickMick Microsoft Office Excel 6 06.10.2008 13:57


08:28.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru