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

Редактирование результата запроса

15.02.2012, 15:56. Показов 6839. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Редактирую результат запроса, возникает ошибка (даже в Enterprise Manadger-е). В чем может быть дело?
Code
1
2
3
4
5
6
7
8
9
SELECT     dbo.tblTC.KeyTC, dbo.tblTC.NameTC, tbl_0.NameZnach AS NameZnach_0, tbl_0.Color AS Color_0, tbl_1.NameZnach AS NameZnach_1, 
                      tbl_1.Color AS Color_1 
FROM         (SELECT     KTC, NameZnach, Color, Visual 
                       FROM          dbo.tblTCZnach 
                       WHERE      (KZnach = 0)) tbl_0 INNER JOIN 
                          (SELECT     KTC, NameZnach, Color, Visual 
                            FROM          dbo.tblTCZnach 
                            WHERE      (KZnach = 1)) tbl_1 ON tbl_0.KTC = tbl_1.KTC INNER JOIN 
                      dbo.tblTC ON tbl_1.KTC = dbo.tblTC.KeyTC
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.02.2012, 15:56
Ответы с готовыми решениями:

Использование результата запроса
Приветствую. Столкнулся с необходимостью использования MSSQL. Создал запрос для поиска наиболее распространенного в столбце параметра....

Исключение данных из результата запроса.
Здравствуйте! Помогите со следующей проблемой, плз! есть запрос: SELECT * FROM NewBd.dbo.Lecturer LEFT OUTER JOIN Sub_lecture ON...

Исключение из результата запроса записей по условию
Добрый день! имеем таблицу учеников и их оценок: иванов 2 иванов 5 петров 5 сидоров 4 как получить список учеников, которые...

22
Silver
15.02.2012, 16:31
Во, блин наворотил! Восхищаюсь!
А нельзя проще:
....
FROM dbo.tblTCZnach tbl_0 inner join
dbo.tblTCZnach tbl_1 on tbl_0.KTC = tbl_1.KTC inner join
dbo.tblTC ON tbl_1.KTC = dbo.tblTC.KeyTC
WHERE tbl_0.KZnach = 0 and tbl_1.KZnach = 1
?
Вложенные запросы по определению работают медленнее
0 / 0 / 0
Регистрация: 21.09.2011
Сообщений: 15
16.02.2012, 09:15  [ТС]
Цитата Сообщение от Silver
Во, блин наворотил! Восхищаюсь!
А нельзя проще:
Вложенные запросы по определению работают медленнее
Спасибо за совет. Но сути проблемы это не решило.
А вообще можно редоктировать результат такого запроса (две строки склеяны в одну)?
0
Silver
16.02.2012, 10:37
Опиши подробнее суть проблемы.
Что за ошибка выходит?
Есть еще одно сомнительное место в твоем запросе
Таблицы (tbl_0 и tbl_1) связаны по полю KTC,
одинаковые значения этих полей должны быть в
таблице tblTCZnach при KZnach = 0 и KZnach = 1.
Иначе выйдет пустой результат!
0 / 0 / 0
Регистрация: 21.09.2011
Сообщений: 15
16.02.2012, 11:17  [ТС]
Цитата Сообщение от Silver
Опиши подробнее суть проблемы.
Что за ошибка выходит?
Есть еще одно сомнительное место в твоем запросе
Таблицы (tbl_0 и tbl_1) связаны по полю KTC,
одинаковые значения этих полей должны быть в
таблице tblTCZnach при KZnach = 0 и KZnach = 1.
Иначе выйдет пустой результат!
tblTC - таблица сигналов (ключевое поле KeyTC)
tblTCZnach - таблица значения этих сигналов. Их у каждого сигнала два. (ключевое поле KTC, KZnach)

tblTC
---------------------
KeyTC NameTC
1 Задвижка
2 Насос N1
3 Насос N2

tblTCZnach
--------------------
KTC KZnach NameZnach
1 0 закрыта
1 1 открыта
2 0 выключен
2 1 включен
3 0 выключен
3 1 включен

Надо выводить одной строкой
---------------------------------------------
1 Задвижка закрыта открыта
2 Насос N1 выключен включен

Вывести получилось, но при редактировании ошибка
[image]"D:21.jpg"[/image]
0
Silver
16.02.2012, 11:20
Ты же не хочешь сказать, что пытаешься редактировать результат запроса!!!!!
0 / 0 / 0
Регистрация: 21.09.2011
Сообщений: 15
16.02.2012, 11:25  [ТС]
Цитата Сообщение от Silver
Ты же не хочешь сказать, что пытаешься редактировать результат запроса!!!!!
Именно так
0
Silver
16.02.2012, 11:33
Я конечно прочитал название топика, но... мне и в голову не могло
прийти, что человек, написавший (правильно!) такой навороченный запрос,
может пытаться "побрить своё изображение в зеркале"!
Результат запроса отредактировать НЕЛЬЗЯ по определению!!!!
Для обновления полей таблиц, входящих в запрос следует
использовать UPDATE внутри транзакции (если обновляемых полей несколько).
begin tran
update table1 set field = valueA where = ...
update table2 set field = valueB where = ...
....
update tableХ set field = valueZ where = ...
commit tran
0 / 0 / 0
Регистрация: 21.09.2011
Сообщений: 15
16.02.2012, 12:16  [ТС]
Цитата Сообщение от Silver
Я конечно прочитал название топика, но... мне и в голову не могло
прийти, что человек, написавший (правильно!) такой навороченный запрос,
может пытаться "побрить своё изображение в зеркале"!
Результат запроса отредактировать НЕЛЬЗЯ по определению!!!!
Я конечно не знаю, почему ты думаешь, что нельзя редактировать результат запроса и откуда такое определение про запрос.
С запросом можно работать так же как с таблицей:
вставлять, удалять, редактировать.
Может просто дело в том терминах. в Аксессе они называются запросами.
Может, если я скожу "предстовление" станет все на свои места
0
Silver
16.02.2012, 12:49
С запросом можно работать так же как с таблицей:
вставлять, удалять, редактировать.
Докажи мне это примером и я признаю свою неправоту!
В запросе должно быть более 1 таблицы.
0 / 0 / 0
Регистрация: 21.09.2011
Сообщений: 15
16.02.2012, 13:57  [ТС]
Цитата Сообщение от Silver
Докажи мне это примером и я признаю свою неправоту!
В запросе должно быть более 1 таблицы.
Если так нужен пример то держи. Для базы "Northwind"
SELECT dbo.[Order Details].*, dbo.Orders.*
FROM dbo.[Order Details] INNER JOIN
dbo.Orders ON dbo.[Order Details].OrderID = dbo.Orders.OrderID

или создай свой любой Views и попробуй
0
Silver
16.02.2012, 14:35
Действительно. В EM редактирование возможно, хотя я более склонен считать,
что это скорее возможности EM.
Но в любом случае я признаю, что запрос (представление) в Enterprise Manager редактировать можно. Насчет этого я ошибался.
Исходя из этого рискну предположить, что ты пытаешься редактировать ключевые
поля (поля связей таблиц)? Вот их он точно не даст редактировать.
Либо их нужно менять одновременно.
0 / 0 / 0
Регистрация: 21.09.2011
Сообщений: 15
16.02.2012, 14:40  [ТС]
Цитата Сообщение от Silver
Действительно. В EM редактирование возможно, хотя я более склонен считать,
что это скорее возможности EM.
Но в любом случае я признаю, что запрос (представление) в Enterprise Manager редактировать можно. Насчет этого я ошибался.
Исходя из этого рискну предположить, что ты пытаешься редактировать ключевые
поля (поля связей таблиц)? Вот их он точно не даст редактировать.
Либо их нужно менять одновременно.
Редактировать можно и с помощью Delphi (например через dbGrid)
Если на счет ошибка, то она не из-за редактирование ключевых полей
0
Silver
16.02.2012, 14:44
Сейчас я поставлю эксперимент, чтобы определиться окончательно.
Silver
16.02.2012, 14:52
Тогда напрашивается следующий вопрос.
Почему нельзя выполнить такой запрос:
UPDATE (SELECT dbo.[Order Details].*, dbo.Orders.*
FROM dbo.[Order Details] INNER JOIN
dbo.Orders ON dbo.[Order Details].OrderID = dbo.Orders.OrderID)

SET Quantity = 15 WHERE OrderID = 10248 and Quantity = 12
(это именно UPDATE представления в чистом виде)

А такой запрос выполняется без проблем:
SET Quantity = 15 WHERE OrderID = 10248 and Quantity = 12
?
Silver
16.02.2012, 14:53
Поправочка:
UPDATE dbo.[Order Details] SET Quantity = 15 WHERE OrderID = 10248 and Quantity = 12
0 / 0 / 0
Регистрация: 21.09.2011
Сообщений: 15
16.02.2012, 15:08  [ТС]
Цитата Сообщение от Silver
Поправочка:
UPDATE dbo.[Order Details] SET Quantity = 15 WHERE OrderID = 10248 and Quantity = 12
А как быть с моей проблемой? :-( ...
0
Silver
16.02.2012, 15:32
Приведи текст сообщения об ошибке
0 / 0 / 0
Регистрация: 21.09.2011
Сообщений: 15
16.02.2012, 15:43  [ТС]
Цитата Сообщение от Silver
Приведи текст сообщения об ошибке
Не получается поместиь на форуме рисунок
Отправил лично на halone@yandex.ru
0
Silver
16.02.2012, 16:33
Получил.
Там пишется, что другой пользователь изменил значение таблицы или представления.
Строка (в данном контексте значение поля) которую вы модифицируете больше не существует.
Делай вывод.
Вопрос второй - какое поле редактируешь?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.02.2012, 16:33
Помогаю со студенческими работами здесь

Представление результата запроса в виде строки
Здравствуйте! Проблемка следующая нарисовалась: есть запись в таблице Research, представляющая исследование, и некоторое количество...

Как выполнить запрос в зависимости от результата предыдущего запроса
Добрый день, имеется такой код: -- q1 Select 1 as type, field From tableA WHERE field = 1 UNION ALL --q2 Select 2 as type,...

Как задать название столбца при выводе результата запроса
Вывести список всех офисов, отсортированный по разности между фактическим и плановым объемами продаж в порядке убывания. select...

Вывод результата запроса
Привет программЁры! :-) Проблема такая - надо что бы результат выполнения запроса (на SQL в Access) выводился во временную таблицу,...

Группировка результата запроса по дням
Есть таблица с записями о работе игрового автомата. Таблица такая id, paytime, cashin id - автоинкрементное поле, уникально paytime -...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru