Редактирование результата запроса
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        


12»»

Редактирование результата запроса Expand / Collapse
Автор
Сообщение
08.12.2005 15:19
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 09.12.2005 16:00
Сообщ.: 15, Visits: 166
Добрый день.
Редактирую результат запроса, возникает ошибка (даже в Enterprise Manadger-е). В чем может быть дело?

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
Сообщ. #886515
08.12.2005 15:54


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 27.03.2008 15:26
Сообщ.: 701, Visits: 7 028
Во, блин наворотил! Восхищаюсь!
А нельзя проще:
....
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

?
Вложенные запросы по определению работают медленнее
Сообщ. #886518
09.12.2005 8:38
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 09.12.2005 16:00
Сообщ.: 15, Visits: 166
[quote="Silver"]Во, блин наворотил! Восхищаюсь!
А нельзя проще:
Вложенные запросы по определению работают медленнее
[/quote]

Спасибо за совет. Но сути проблемы это не решило.
А вообще можно редоктировать результат такого запроса (две строки склеяны в одну)?
Сообщ. #886591
09.12.2005 10:00


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 27.03.2008 15:26
Сообщ.: 701, Visits: 7 028
Опиши подробнее суть проблемы.
Что за ошибка выходит?
Есть еще одно сомнительное место в твоем запросе
Таблицы (tbl_0 и tbl_1) связаны по полю KTC,
одинаковые значения этих полей должны быть в
таблице tblTCZnach при KZnach = 0 и KZnach = 1.
Иначе выйдет пустой результат!
Сообщ. #886596
09.12.2005 10:40
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 09.12.2005 16:00
Сообщ.: 15, Visits: 166
[quote="Silver"]Опиши подробнее суть проблемы.
Что за ошибка выходит?
Есть еще одно сомнительное место в твоем запросе
Таблицы (tbl_0 и tbl_1) связаны по полю KTC,
одинаковые значения этих полей должны быть в
таблице tblTCZnach при KZnach = 0 и KZnach = 1.
Иначе выйдет пустой результат!
[/quote]

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:\2\1.jpg"[/image]
Сообщ. #886601
09.12.2005 10:43


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 27.03.2008 15:26
Сообщ.: 701, Visits: 7 028
Ты же не хочешь сказать, что пытаешься редактировать результат запроса!!!!!
Сообщ. #886602
09.12.2005 10:48
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 09.12.2005 16:00
Сообщ.: 15, Visits: 166
[quote="Silver"]Ты же не хочешь сказать, что пытаешься редактировать результат запроса!!!!![/quote]

Именно так
Сообщ. #886603
09.12.2005 10:56


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 27.03.2008 15:26
Сообщ.: 701, Visits: 7 028
Я конечно прочитал название топика, но... мне и в голову не могло
прийти, что человек, написавший (правильно!) такой навороченный запрос,
может пытаться "побрить своё изображение в зеркале"!
Результат запроса отредактировать НЕЛЬЗЯ по определению!!!!
Для обновления полей таблиц, входящих в запрос следует
использовать UPDATE внутри транзакции (если обновляемых полей несколько).
begin tran
update table1 set field = valueA where = ...
update table2 set field = valueB where = ...
....
update tableХ set field = valueZ where = ...
commit tran