powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Помогите с запросомб пожалуста.
9 сообщений из 9, страница 1 из 1
Помогите с запросомб пожалуста.
    #36008115
Bulbazavr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Существует запрос типа
INSERT INTO ITSBOB.USERENTITY (CNUM, ROLE_ID, SUBROLE_ID, ENTITY_ID, ENTITY_VALUE, ENTITY_VALUE2, LAST_UPDATE_DATE, LAST_UPDATED_BY)
(SELECT UC.CNUM, UC.ROLE_ID, UC.SUBROLE_ID, UC.ENTITY_ID, UC.ENTITY_VALUE, UC.ENTITY_VALUE2, CURRENT TIMESTAMP, !!!VALUE!!!
FROM ITSBOB.USERENTITY_CFTS UC WHERE UC.ENTITY_VALUE = ? AND UC.ENTITY_VALUE2 = ? AND UC.ROLE_ID = ? AND UC.SUBROLE_ID = ?)

Значение !!!VALUE!!! мне надо заменить на переменную. В связи с чем возник вопрос как приконкотенировать к запросу:
SELECT UC.CNUM, UC.ROLE_ID, UC.SUBROLE_ID, UC.ENTITY_ID, UC.ENTITY_VALUE, UC.ENTITY_VALUE2, CURRENT TIMESTAMP
FROM ITSBOB.USERENTITY_CFTS UC WHERE UC.ENTITY_VALUE = ? AND UC.ENTITY_VALUE2 = ? AND UC.ROLE_ID = ? AND UC.SUBROLE_ID = ?
справа ещё одно значение которого можно было бы установить внешним параметром, и чтобы потом это можно было использовать как параметр для инсерта.
...
Рейтинг: 0 / 0
Помогите с запросомб пожалуста.
    #36008288
Если правильно помню, то !!!VALUE!!! нужно заменить на:
Код: plaintext
CAST(? AS CHAR( 10 ))
CHAR(10) замени на нужный для этого столбца тип данных.
...
Рейтинг: 0 / 0
Помогите с запросомб пожалуста.
    #36008381
Bulbazavr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо! Сработало! =)
...
Рейтинг: 0 / 0
Помогите с запросомб пожалуста.
    #36090118
Николаха
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый .....!!!
Есть запрос:

Код: plaintext
1.
2.
3.
4.
5.
6.
select t1.*,t2.val_name
from table1 t1
      inner join (select tt.* 
                    from table2 tt 
                    where tt.val_name in ('123','456','789')) t2 on t2.id_val=t1.id_val
where t1.id_st=.....

Но не пашет, пишет:
Код: plaintext
SQL0104N Обнаружен неправильный элемент "123" после текста where tt.val_name in. Список правильных элементов "UNION". SQLSTATE= 42601 

В чем может быть причина!?
...
Рейтинг: 0 / 0
Помогите с запросомб пожалуста.
    #36097631
mustaccio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы предположил, что причина в следующем: ваш запрос заключен в одинарные кавычки.
...
Рейтинг: 0 / 0
Помогите с запросомб пожалуста.
    #36098833
Николаха
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mustaccio,

Не понял!?
...
Рейтинг: 0 / 0
Помогите с запросомб пожалуста.
    #36160250
Николаха
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НиколахаДобрый .....!!!
Есть запрос:

Код: plaintext
1.
2.
3.
4.
5.
6.
select t1.*,t2.val_name
from table1 t1
      inner join (select tt.* 
                    from table2 tt 
                    where tt.val_name in ('123','456','789')) t2 on t2.id_val=t1.id_val
where t1.id_st=.....

Но не пашет, пишет:
Код: plaintext
SQL0104N Обнаружен неправильный элемент "123" после текста where tt.val_name in. Список правильных элементов "UNION". SQLSTATE= 42601 

В чем может быть причина!?

Аналогичная проблема. Неужели никто не знает!?!?!?!?!?!?

Есть таблицы t1,t2,t3
автор
t1:
id_t1
name_t1

t2:
id_t2
name_t2
id_t1 (FK)

t3:
id_t3
name_t3
date_t3
id_t2 (FK)

Делаю запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select t.id_t1,t.name_t1,c.counts
from t1 t
	left join (select tt.id_t1,count(ttt.id_t3) as counts
		from t3 ttt
			inner join t2 tt on tt.id_t2=ttt.id_t2
		where ttt.date_t3 between '14.07.2009' and '20.07.2009'
		group by tt.id_t1
		order by tt.id_t1) c on c.id_t1=t.id_t1
order by rr.id_r

Выдает ошибку:
авторAn exception occurred
Message: [IBM][CLI Driver][DB2/NT] SQL0104N Обнаружен неправильный элемент "14.07.2009' and '20.07.2009' group by tt" после текста ".date_t3 between '". Список правильных элементов: "<space>". SQLSTATE=42601
...
Рейтинг: 0 / 0
Помогите с запросомб пожалуста.
    #36160340
FireCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO лучше:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
with t2(id_val, val_name) as (
select tt.id_val, tt.val_name
from table2 tt
where tt.val_name in ('123', '456', '789'))

select t1.*, t2.val_name
from table1 t1
  inner join t2 on t2.id_val = t1.id_val

Или еще короче:

Код: plaintext
1.
2.
3.
select t1*, t2.val_name
from table1 t1
  inner join table2 t2 on t2.id_val = t1.id_val
where t2.id_val in ('123', '456', '789')

В тех примерах что приводил, если правильно помню, надо имена столбцов определять. Например: t1(id_val, val_name). Но проверить сейчас нет возможности - нет DB2 под рукой.
...
Рейтинг: 0 / 0
Помогите с запросомб пожалуста.
    #36160814
Николаха
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FireCatIMHO лучше:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
with t2(id_val, val_name) as (
select tt.id_val, tt.val_name
from table2 tt
where tt.val_name in ('123', '456', '789'))

select t1.*, t2.val_name
from table1 t1
  inner join t2 on t2.id_val = t1.id_val

Или еще короче:

Код: plaintext
1.
2.
3.
select t1*, t2.val_name
from table1 t1
  inner join table2 t2 on t2.id_val = t1.id_val
where t2.id_val in ('123', '456', '789')

В тех примерах что приводил, если правильно помню, надо имена столбцов определять. Например: t1(id_val, val_name). Но проверить сейчас нет возможности - нет DB2 под рукой.

Спасибо за ответ, помогло, но и этот запрос сработал, проблема была в том что я использовал SQL Manager 2007 for DB2 в нем почему то не работает. Когда попробовал ваш вариант он хоть ошибку не дал, но и не сработал, решил в стандартном DB2 редакторе команд попробовать и получилось: и ваш запрос сработал и мой. Использовать с WITH удобно: иногда бывает очень много подобных подзапросов и временами возникает путаница. Еще раз спасибо!!!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Помогите с запросомб пожалуста.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]