Текущий архив: 2004.03.14;
Скачать: CL | DM;
ВнизКак сделать UNION во VIEW в IB5.5 Найти похожие ветки
← →
jenya_d (2004-02-13 11:13) [0]Доброго времени суток профи!!!
Подскажите пожалста как можно заставить IB55 сохранить представление в котором есть объединение запросов с помощью
UNION?
Заранее благодарен.
P.S. в доке написано, что на DSQL не получется, а как можно это реально сделать?
← →
jenya_d (2004-02-13 11:37) [1]неужели никто не знает как?? а может это вообще невозможно??
← →
Жук (2004-02-13 11:40) [2]У меня ИБ6 - всё нормально сохраняет.
Запрос-то сам нормально работает, может он кривой ?
← →
Johnmen (2004-02-13 11:42) [3]Все нормально с юнион.
Что имеется в виду под "сохранить представление" ?
← →
jenya_d (2004-02-13 12:04) [4]>Жук © (13.02.04 11:40)
у меня IB 5.5, а сам запрос я проверял без предстваления - работает отлично!
>Johnmen © (13.02.04 11:42)
я имею ввиду
CREATE VIEW Имя(...)
AS
select ...
union
select ...
union
select ...
← →
Val (2004-02-13 12:17) [5]>jenya_d (13.02.04 12:04) [4]
вы имеете ввиду, что не можете выполнить эту команду?
← →
jenya_d (2004-02-13 12:21) [6]>Val © (13.02.04 12:17)
да я немогу ее выполнить ни в IB Exprert ни в SQL Explorer ни в InterBase Windows ISQL
← →
Johnmen (2004-02-13 12:21) [7]>jenya_d (13.02.04 12:04) [4]
А попробуй с UNION ALL
:)
← →
Fay (2004-02-13 12:46) [8]>> Имя(...)
Это чё?
← →
jenya_d (2004-02-13 13:36) [9]>Johnmen © (13.02.04 12:21)
не получается, все равно выдает:
"Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 11, char -1.
union."
>Fay © (13.02.04 12:46)
Имя(...) - это имя представления со списком полей в скобках
← →
Johnmen (2004-02-13 13:42) [10]>jenya_d (13.02.04 13:36) [9]
Странно это... Приведи полностью код вью.
← →
jenya_d (2004-02-13 13:45) [11]>Johnmen © (13.02.04 13:42)
привожу:
CREATE VIEW ZP(
DATREG,
F_YEAR,
ID,
ZARP)
AS
select t1.datreg, f_year(t1.datreg), t1.id, t1.zarp from dogovor t1
where t1.reg_pal = "-" and t1.anulir = "-" and t1.datrast is null
and t1.datregrast is null and (t1.id_osnrast = 0 or t1.id_osnrast is null)
and (select count(t2.id) from dop_dog t2 where t2.id = t1.id) = 0
union
select t4.datreg, f_year(t4.datreg), t4.id, t4.zarp from dogovor t4
where t4.reg_pal = "-" and t4.anulir = "-" and t4.datrast is null
and t4.datregrast is null and (t4.id_osnrast = 0 or t4.id_osnrast is null)
and (select count(t5.id) from dop_dog t5 where t5.id = t4.id) > 0
and (select count(t6.id_dog) from uchet_par t6 where
t6.id_dog = t4.id and t6.id_param = 8 and t6.id_nar = -1 and t6.id_dop > -1) = 0
union
select t7.datreg, f_year(t7.datreg), t7.id, t9.zarp from dogovor t7 join uchet_par t8
on t7.id = t8.id_dog and t8.id_param = 8
and t8.id_nar = -1 join dop_dog t9 on t7.id = t9.id
where t7.reg_pal = "-" and t7.anulir = "-" and t7.datrast is null
and t7.datregrast is null and (t7.id_osnrast = 0 or t7.id_osnrast is null)
and t9.id_dop = (select max(t10.id_dop) from dop_dog t10 where t10.id = t7.id)
где f_year - UDF - возвращает год из даты
← →
Johnmen (2004-02-13 14:04) [12]>jenya_d (13.02.04 13:45) [11]
А так проходит ?
CREATE VIEW TestView(DATREG)
AS
select datreg from dogovor
union
select datreg from dogovor
И откуда выполняется создание вью ?
← →
jenya_d (2004-02-13 14:11) [13]>Johnmen © (13.02.04 14:04)
нет не проходит, выдает ту же ошибку что я указывал в jenya_d (13.02.04 13:36). Создание вью выполняется в IB Expert 2.0-SQL редакторе
← →
Johnmen (2004-02-13 14:18) [14]>jenya_d (13.02.04 14:11)
Единственное абстрактное предположение, что IB5 не поддерживает юнион во вью...
← →
Val (2004-02-13 14:21) [15]а если попытаться создать вью на основе
select * from(....)?
← →
jenya_d (2004-02-13 14:22) [16]>Johnmen © (13.02.04 14:18)
дело в том, что я уже указывал что IB55 не поддерживает union во вью на DSQL, однако в доке сказано, что можно это сделать только на Embedded SQL. А что это за хрень я не особо знаю.
P.S. а у вас какой IB?
← →
Johnmen (2004-02-13 14:26) [17]Через Embedded SQL, значит напрямую работать с IB API.
IB6 и клоны.
Может просто перейти на клон ?
← →
jenya_d (2004-02-13 14:26) [18]>Val © (13.02.04 14:21)
ну и как вы это себе представляете? Мне ведь нужно именно объединить разные наборы в один, чтобы потом одним запросом сделать группирование по вью.
А затеял я всю эту конитель с вью поскольку в IB55 нет поддержки группировки по UDF.
← →
jenya_d (2004-02-13 14:31) [19]>Johnmen © (13.02.04 14:26)
я уже думал об этом (на FB1.5 например), но у меня тут пара больших комплекса работает под IB55, да плюс читал про проблемки с компонентом IBX TIBStoredProc - надо переводить все используемые процедуры на TIBQuery
(select * from procedure(...))
да плюс в другой диалект переход довольно напряжен на рабочих-то базах.
← →
Johnmen (2004-02-13 14:36) [20]>jenya_d (13.02.04 14:31) [19]
Никаких проблем с переходом нет.
Всё, что надо сделать, это backup под IB и restore под FB.
← →
Кщд (2004-02-13 14:36) [21]смена диалекта при переходе - необязательна
← →
Кщд (2004-02-13 14:39) [22]Johnmen © (13.02.04 14:36) [20] + предварительно вычистив новые ключевые слова в именах объектов, буде такие есть...
← →
Val (2004-02-13 14:40) [23]>jenya_d (13.02.04 14:26) [18]
вы о чем, уважаемый? вас затрудняет сделать внутренний запрос из всего этого добра с union?
← →
jenya_d (2004-02-13 14:51) [24]>Кщд (13.02.04 14:36)
ну если уш переходить так по полной программе
>Кщд (13.02.04 14:39)
да вычистив и перелопатив при этом кучу исходников, а на это многовато времени надо, а его к сожалению нету.
>Val © (13.02.04 14:40)
ну если не трудно подскажите как, буду признателен.
← →
Johnson™ (2004-02-13 15:02) [25]Была такая проблемма решил установкой IB из 7 делфей, сложилось такое впечатление что 5.5 не понимает такую постановку вопроса.
← →
jenya_d (2004-02-13 15:09) [26]Всем большое спасибо за помощь. Я кажется разобрался с этой проблемкой и решение получается очень неплохое - селективная процедура.
P.S. а вообще по этой проблемке как выяснилось есть статья на ibase.ru
← →
Val (2004-02-13 15:11) [27]>jenya_d (13.02.04 14:51) [24]
попытаться обмануть сервер
create myview as
select * from (ваш запрос) - хотя сомневаюсь что получится - просто ради интереса.
← →
jenya_d (2004-02-13 15:40) [28]>Val © (13.02.04 15:11)
естественно не получилось. Типа умный сервак-то.
Страницы: 1 вся ветка
Текущий архив: 2004.03.14;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.016 c