Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 25.03.2014
Сообщений: 67

Выборочное редактирование в таблице

05.02.2020, 23:39. Показов 1681. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть 2 таблицы как на картинке. Допустим, курс $ поменялся, в таблице MAT пересчитали запросом.
Теперь надо в таблице TBL тоже поменять Price, естественно только в нужных строках, то есть выбрать из MAT где $ и при совпадении ID_Mat в обеих таблицах. Как это сделать одним запросом.
Пробовал такой запрос
SQL
1
2
3
UPDATE TBL 
    SET [Price]= 
    (SELECT [Price] FROM MAT WHERE [Valut]='$' AND TBL.ID_Mat=MAT.ID_Mat)
выдает ошибку на SELECT, да и в общем-то видно что не то.
Может важно, SQL Compact 3.5
Миниатюры
Выборочное редактирование в таблице  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.02.2020, 23:39
Ответы с готовыми решениями:

Редактирование данных в таблице
Добрый день, уважаемые форумчане! Есть 2 таблицы (назовем их table_a и table_b) со следующей структурой: doc_id|param_id|value ...

Выборочное уравнение прямой по корреляционной таблице
найдя выборочное уравнение прямой по данным корреляционной таблицы. я сделала сравнение условно средних, вычисленных по уравнению...

Редактирование записей в таблице
Пишу что-то вроде записной книжки или блокнота. Записи вывожу в html-таблицу. Хочу чтобы сами записи можно было редактировать в этой...

10
5 / 3 / 2
Регистрация: 17.02.2016
Сообщений: 344
06.02.2020, 00:13
Joiner, м.б. попробовать join т.е. таб1 join таб2 он таб1.ID=таб2.ID and $<>$
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
06.02.2020, 09:27
один вопрос - зарадидля эти телодвижения?
0
1 / 1 / 1
Регистрация: 25.03.2014
Сообщений: 67
06.02.2020, 10:27  [ТС]
Цитата Сообщение от pincet Посмотреть сообщение
один вопрос - зарадидля эти телодвижения?
Да все просто, есть таблица с используемыми материалами для производства, и есть таблица с готовыми комплектами этих материалов для изделий. Из этих комплектов формируется заказ для клиента. Цены на материалы периодически корректируются, и нужно их обновлять в этих комплектах. Я нарисовал упрощенный вариант таблиц, что бы не забивать голову лишним. Мне нужно суть понять.
Если цена правится только в одной строке, то проблем нет. А вот, то что в валюте, обновляется пакетом. Так же пакетом нужно и в комплектах обновить.

Цитата Сообщение от АЛКС Посмотреть сообщение
попробовать join т.е. таб1 join таб2
Что-то не совсем представляю, join объединяет столбцы.
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
06.02.2020, 10:44
использовать справочник курсов валют не предлагать?
0
1 / 1 / 1
Регистрация: 25.03.2014
Сообщений: 67
06.02.2020, 11:25  [ТС]
Цитата Сообщение от pincet Посмотреть сообщение
использовать справочник курсов валют не предлагать?
А это как? Непонятен вопрос.
Сейчас курс вводится вручную через форму, по мере необходимости. Возможно позже прикручу загрузку курса с сайта ЦБ, что бы все автоматом делалось.
0
5 / 3 / 2
Регистрация: 17.02.2016
Сообщений: 344
06.02.2020, 11:26
Joiner, вот по аналогии попробуй

T-SQL
1
2
3
4
5
6
With Updatettt  As
(SELECT a.ID_1 ,a.ID_2 ,a.ID_3 , row_number() over(partition by NAME_1 order by ID_2 desc) ttt3
  FROM adm3 a)
UPDATE adm3 SET ttt2 = ttt3
FROM adm3 w
 JOIN Updatettt ON w.ID_1 = Updatettt.ID_1 and w.ID_2 = Updatettt.ID_2  and w.ID_3 = Updatettt.ID_3
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
06.02.2020, 12:36
Лучший ответ Сообщение было отмечено pincet как решение

Решение

Joiner, твоя модель не верна с точки зрения нормализации и реализации.
сам прикинь, правильно ли то, что из-за обновлении каких-то данных в одном месте, тебе нужно обновлять их же и в другом месте?
должен быть справочник валют, курс валют за дату. и причем эти таблицы должны быть историчны (иметь дату начала и окончания действия записи).
и общая таблица фактов с дополнительной атрибутикой. где будут ключи из первых двух таблиц для создания связей между ними. и тогда нужно будет только написать корректный запрос на выборку данных, без всякий удалений, обновлений и тд
0
1 / 1 / 1
Регистрация: 25.03.2014
Сообщений: 67
06.02.2020, 13:28  [ТС]
Цитата Сообщение от AndreyVorobey Посмотреть сообщение
Joiner, твоя модель не верна с точки зрения нормализации и реализации.
сам прикинь, правильно ли то, что из-за обновлении каких-то данных в одном месте, тебе нужно обновлять их же и в другом месте?
Спасибо за совет. Я понимаю о чем Вы говорите. Настройка связей, каскадное обновление, запросы с объединением. Согласен с Вами.
Но, как говорится, пока имеем, то что имеем. Планирую потом провести оптимизацию кода и, естественно, базы и запросов. Пока есть объективные причины:
1. Мои слабые познания в SQL. Почти вся программа построена на простых запросах, потому что сейчас мне интересна сама возможность реализации программы.
2. В программе есть место, где рассчитывается заказ, алгоритм довольно сложный, много циклов, много условий IF, множество выборов CASE, плюс много расчетов объемов, площадей и прочее. В процессе расчета тьма запросов. Полный расчет занимает очень заметное время. Причем весь перерасчет вызывается всего после изменения одной исходной цифирки. А все это я описываю из-за того, что сложные запросы еще более усугубят ситуацию, поэтому я и пытаюсь вынести максимальное количество операций из этого алгоритма, пусть даже супротив нормальной логики.
Например, в данном случае нужно получить максимум данных простым запросом, а эти данные пусть обновляются в другом месте, где это не критично.
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
06.02.2020, 15:48
Joiner, так же неверный подход - делать изначально неправильно, так как кпд потраченного время стремится к нулю, и как следствие - программу нужно будет переписать.
так что мы можем сделать новую модель, перенести все расчеты на ее основе. думаю, там не так много переписывать нужно.
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
06.02.2020, 16:02
Цитата Сообщение от Joiner Посмотреть сообщение
Спасибо за совет. Я понимаю о чем Вы говорите. Настройка связей, каскадное обновление, запросы с объединением. Согласен с Вами.
нет, речь совсем не об этом
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.02.2020, 16:02
Помогаю со студенческими работами здесь

Редактирование данных в таблице
Имеется 2 таблицы: sptar и spval Связь spval.CODVAL=sptar.CODVAL SQl-запрос: ADOQuery1.SQL.Text:='SELECT sptar.TEXT,...

Редактирование записей в таблице
Здравствуйте еще раз))) Мне надо организовать редактирование строк в таблице таким образом: нажимаю на ссылку Редактировать, по...

Редактирование данных в таблице
Не понимаю, как исправить код так: 1)Чтобы значения countshop при редактировании не были равны 0, а оставалось прежнее заданное значение ...

Редактирование записи в таблице
Вот код страницы:protected void Page_Load(object sender, EventArgs e) { DataClasses1DataContext db = new...

Редактирование данных в таблице
Есть таблица с записями (список сотрудников). Как в jsp сделать так, чтобы можно было выделить сотрудника нажать кнопку редактировать и на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru