powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Даже не знаю что мне поможет
25 сообщений из 25, страница 1 из 1
Даже не знаю что мне поможет
    #34663344
pavellift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой вот запрос

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
select full_name as полное_наименование, short_name as сокращённое_наименование,
acc as счёт, cst.codeokpo as ОКПО,
ad.address as адрес,
txr.dt_reg as дата_регистрации, name_sti as орган_регистрации, num_reg as номер_регистрации,
phone as телефон, fax as факс, email,
jhis.desctext as история, typename, sprk.remark as Уровень_риска_проведения_легализации_доходов,
ac.idcustomer
from customer cst, account ac, address ad, tax_registration txr, spr_reg spr,
 contact cnt, jurhistory jhis, jurdesctype jdesc, risk rk, spr_risk_kod sprk
where acc='2600......'

and cst.idcustomer=ac.idcustomer
and cst.idcustomer=ad.idcustomer
and cst.idcustomer=txr.idcustomer
and txr.c_dst=spr.c_dst
and cst.idcustomer=cnt.idcustomer
and cst.idcustomer=jhis.idcustomer
and jhis.desctype=jdesc.desctype
and rk.risk_kod=sprk.risk_kod

несколь слов о запросе. По счёту должен выбирать клиента. там всякие данные начиная с телефона заканчивая регистрацией в налоговой. Так вот проблемы начинаются тогда когда я подключил к запросу таблички jurhistory. У каждого клиента много записей в этой табличке, но есть и те у которых ни одной. Так вот запрос работает если записи в поле desctext таблицы jurhistory есть. если же их нет то он вообще ничего не выводит, говорит запрос выполнен данных не получено. поиск происходит по полю acc. Как мне поступить?
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34663397
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
create table dto1(a int);
Table created.

create table dto2(a int);
Table created.

insert into dto1(a) values (1);
1 row(s) inserted.

insert into dto1(a) values (2);
1 row(s) inserted.

insert into dto2(a) values (1);
1 row(s) inserted.

select * from dto1,  outer  dto2 where dto1.a=dto2.a;
          a           a 

          1           1
          2            

2 row(s) retrieved.
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34663414
pavellift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то не очень понятно, а с комментариями можно?
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34663446
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34663562
pavellift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разобрался. сделал маленький запрос и всё заработало

Код: plaintext
1.
2.
3.
4.
5.
select full_name, short_name, acc, desctext
from vaccount a, customer c LEFT OUTER JOIN jurhistory j on c.idcustomer=j.idcustomer

where acc='39007910001'
and c.idcustomer=a.idcustomer
and c.idcustomer=j.idcustomer
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34663612
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще сразу разберитесь с тем в чем отличия outer от left outer join .

pre-join predicates
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select * 
from dto1, outer dto2 
where dto1.a=dto2.a and dto2.a is null

          a           a 

          1            
          2            

и post-join predicates
Код: plaintext
1.
2.
3.
4.
5.
select * from dto1 left outer join dto2 on (dto1.a=dto2.a) where dto2.a is null

          a           a 

          2            
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34663907
pavellift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а сейчас что ему может не нравиться

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
select full_name as полное_наименование, short_name as сокращённое_наименование,
acc as счёт, cst.codeokpo as ОКПО,
ad.address as адрес,
txr.dt_reg as дата_регистрации, name_sti as орган_регистрации, num_reg as номер_регистрации,
phone as телефон, fax as факс, email,
jhis.desctext as история, typename, sprk.remark as Уровень_риска_проведения_легализации_доходов,
ac.idcustomer
from customer cst, vaccount ac, address ad, tax_registration txr, spr_reg spr, contact cnt, jurhistory jhis, jurdesctype jdesc, risk rk, spr_risk_kod sprk

where substr(acc,  1 , 4 ) in ('2600')

and cst.idcustomer=ac.idcustomer
and cst.idcustomer=ad.idcustomer
and cst.idcustomer=txr.idcustomer
and txr.c_dst=spr.c_dst
and cst.idcustomer=cnt.idcustomer
and cst.idcustomer=jhis.idcustomer
and jhis.desctype=jdesc.desctype
and rk.risk_kod=sprk.risk_kod
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34663913
pavellift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то же самое пишет. мол данных не получено
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34663932
pavellift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извините не ту версию выложил

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
select full_name as полное_наименование, short_name as сокращённое_наименование,

acc as счёт, cst.codeokpo as ОКПО,

ad.address as адрес,

txr.dt_reg as дата_регистрации, name_sti as орган_регистрации, num_reg as номер_регистрации,

phone as телефон, fax as факс, email,

jhis.desctext as история, typename, sprk.remark as Уровень_риска_проведения_легализации_доходов,

ac.idcustomer

from customer cst left outer join jurhistory jhis on cst.idcustomer=jhis.idcustomer, vaccount ac, address ad, tax_registration txr, spr_reg spr, contact cnt, jurdesctype jdesc, risk rk, spr_risk_kod sprk

where acc='39007910001'

and cst.idcustomer=ac.idcustomer
and cst.idcustomer=ad.idcustomer
and cst.idcustomer=txr.idcustomer
and txr.c_dst=spr.c_dst
and cst.idcustomer=cnt.idcustomer
and cst.idcustomer=jhis.idcustomer
and jhis.desctype=jdesc.desctype
--and jhis.desctext is not null
and rk.risk_kod=sprk.risk_kod
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34664134
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavelliftизвините не ту версию выложил

where ...
and cst.idcustomer=jhis.idcustomer
это зачем? Вы синтаксис еще читайте.
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34664437
ontape
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pavelliftа сейчас что ему может не нравиться

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select full_name as полное_наименование, short_name as сокращённое_наименование,
acc as счёт, cst.codeokpo as ОКПО,
ad.address as адрес,
txr.dt_reg as дата_регистрации, name_sti as орган_регистрации, num_reg as номер_регистрации,
phone as телефон, fax as факс, email,
jhis.desctext as история, typename, sprk.remark as Уровень_риска_проведения_легализации_доходов,
ac.idcustomer
from customer cst, vaccount ac, address ad, tax_registration txr, spr_reg spr, contact cnt, jurhistory jhis, jurdesctype jdesc, risk rk, spr_risk_kod sprk


На Профикс похоже ...
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34664485
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ontapeНа Профикс похоже ...
Даже сомнений нет, что ProFIX и есть :). Хотя я базу уже лет 5 не видел.

Очень рекомендую топикстартеру обратиться к ФАК, ну или хотя бы исполнить одно пожелание конкретно по этому вопросу, а именно постарайтесь облегчить помощникам жизнь, создайте SQL с примером, создающим и наполняющим таблички, а потом уже запрос к ним, который не выдает желаемого. Ведь далеко не у всех участников данной конфы есть БД структуры профикса, ну и тем более далеко не у всех есть именно Ваша БД.
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34666436
pavellift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опять феномен. что за х..

вот запрос, начал переделывать


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select
distinct (full_name), short_name,
acc, c.codeokpo,
address,
dt_reg,
desctext

from vaccount a, address ad, tax_registration t, customer c LEFT OUTER JOIN jurhistory j on c.idcustomer=j.idcustomer

where acc='39007910001'
and c.idcustomer=a.idcustomer
and c.idcustomer=ad.idcustomer
and c.idcustomer=t.idcustomer


всё было кул, пока я ему не сказал выводить dt_reg из таблички tax_registration. говорит такая вот ошибка Floating point exception error has occurre. Что это такое?
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34666440
pavellift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вернее Floating point exception error has occurred.
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34666541
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если так:

Код: plaintext
1.
2.
3.
4.
5.
from vaccount a, address ad, tax_registration t, customer, OUTER jurhistory
where acc='39007910001'
and c.idcustomer=j.idcustomer
and c.idcustomer=a.idcustomer
and c.idcustomer=ad.idcustomer
and c.idcustomer=t.idcustomer
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34668430
pavellift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пока работает, но думаю я ещё несколько раз отпишусь тут :)
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34669423
pavellift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Следующие с чем я столкнулся

Вот запрос состоянием на сейчас

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select
distinct (full_name), short_name,
acc, codeokpo,
address,
t.c_dst, dt_reg, name_sti, num_reg,
j.desctype, typename, desctext

from vaccount a, address ad, tax_registration t, customer c, OUTER jurhistory j, spr_reg sp, jurdesctype jd
where acc='39007910001'
and c.idcustomer=j.idcustomer
and c.idcustomer=a.idcustomer
and c.idcustomer=ad.idcustomer
and c.idcustomer=t.idcustomer
and t.c_dst=sp.c_dst
and jd.desctype=j.desctype

есть таблица jurhistory в ней есть поле desctext это описание истории, так же есть поле desctype это номер заголовка (так сказать) юр истории, ну и соответственно справочник с этими заголовками тянется из таблички jurdesctype. связываются они по полю desctype. так вот почемуто тянется не нужное typename, а весь справочник. Что я сделал не так??? вро де бы все связи прописал правильно...
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34669454
pavellift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощеня разобрался
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34669727
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavellift
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select
distinct (full_name), short_name,
acc, c.codeokpo,
address,
dt_reg,
desctext
from vaccount a, address ad, tax_registration t, customer c LEFT OUTER JOIN jurhistory j on c.idcustomer=j.idcustomer
where acc='39007910001'
and c.idcustomer=a.idcustomer
and c.idcustomer=ad.idcustomer
and c.idcustomer=t.idcustomer

всё было кул, пока я ему не сказал выводить dt_reg из таблички tax_registration. говорит такая вот ошибка Floating point exception error has occurre. Что это такое?
Кстати проблема скорее была из-за смеси двух разных sql синтаксисов.
А как работает такой вариант:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
....
from customer c 
    join vaccount a on c.idcustomer=a.idcustomer
    join address ad on c.idcustomer=ad.idcustomer
    join tax_registration t on c.idcustomer=t.idcustomer
    LEFT OUTER JOIN jurhistory j on c.idcustomer=j.idcustomer
where acc='39007910001'
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34670819
pavellift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То ли это Профикс то ли это я так мало знаю о запросах. из прошлой ситуации вышел с помощью подзапроса. И всё было ОК. сейчас добавил ещё один подхапрос и запрос стал выглядеть так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
select
distinct (full_name), short_name,
acc, codeokpo,
address,
j.desctype, desctext,

(select  typename from customer c, jurdesctype jd, vaccount a, jurhistory j
where acc='2600215937001'
and c.idcustomer=a.idcustomer
and c.idcustomer=j.idcustomer
and j.desctype=jd.desctype) îïèñàíèå_þðèñòîðèè,

(select t.c_reg from customer c, vaccount a, outer tax_registration t, spr_reg sp
where acc='2600215937001'
and c.idcustomer=a.idcustomer
and t.c_dst=sp.c_dst
and c.idcustomer=t.idcustomer)


from vaccount a, address ad, tax_registration t, customer c, OUTER jurhistory j, spr_reg sp, jurdesctype jd
where acc='2600215937001'

and jd.desctype=j.desctype
and j.idcustomer=c.idcustomer
and c.idcustomer=a.idcustomer
and c.idcustomer=ad.idcustomer
and sp.c_dst=t.c_dst
and c.idcustomer=t.idcustomer


Теперь говорит A subquery has returned not exactly one row. Не один ряд понимаете ли возвращает. из-за чего?
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34671047
pavellift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите, что то я захотел что бы мне подзапрос выдал больше одного значени :)
Пойдука я лучше посплю
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34671493
pavellift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот ещё одна проблема. запрос сейчас выглядит вот так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
select
distinct (full_name), short_name,
acc, codeokpo,
address,
j.desctype, desctext,


(select  typename from customer c, jurdesctype jd, vaccount a, jurhistory j
where acc='2600215937001'
and c.idcustomer=a.idcustomer
and c.idcustomer=j.idcustomer
and j.desctype=jd.desctype) описание_юристории,


(select num_reg from vaccount v, outer tax_registration tr
where acc='2600215937001'
and v.idcustomer=tr.idcustomer) номер_регистрации,


(select dt_reg from vaccount v, outer tax_registration tr
where acc='2600215937001'
and v.idcustomer=tr.idcustomer) дата_регистрации,


(select name_sti from vaccount a, spr_reg sp, tax_registration t
where acc='2600501191001'
and a.idcustomer=t.idcustomer
and sp.status='0'
and sp.c_dst=t.c_dst)

from vaccount a, address ad, customer c, OUTER jurhistory j
where acc='2600215937001'

and j.idcustomer=c.idcustomer
and c.idcustomer=a.idcustomer
and c.idcustomer=ad.idcustomer

как видите начал использовать вложенные запросы. проблемную часть я закрасил красным цветом.
Вся проблема в том что это справочник налоговых инспекций свзязывающаяся по полю c_dst с таблицей tax_registration. Праблема в том что налоговые много раз закрывались и со значением 9 поля c_dst налоговых аж 4. из них только одна действительная. Определяется оно по статусу. 2-й и 1-й статус это не действительные, 0 - это действительная. как ему сказать что бы он смотрел только на те у которых статус 0. как видите условие and sp.status='0' не работает.
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34674457
pavellift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять двадцать пять. говорит не получены данные

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
select
distinct (full_name), short_name,
acc, codeokpo,
address, phone, fax, email,

(select  desctext from customer c, jurdesctype jd, vaccount a, jurhistory j
where acc='2600701223001'
and c.idcustomer=a.idcustomer
and c.idcustomer=j.idcustomer
and j.desctype=jd.desctype
and j.desctype='305') репутация,

num_reg, dt_reg,

(select risk_kod from risk r, vaccount a
where acc='2600701223001'
and a.idcustomer=r.idcustomer) as risk_kod,

(select remark from spr_risk_kod srk, risk r, vaccount a
where acc='2600701223001'
and a.idcustomer=r.idcustomer
and r.risk_kod=srk.risk_kod) Риск_легализации_доходов,

clt.link_type, clt.remark, surname, name, midname,  {прив персоны}

(select  desctext from customer c, jurdesctype jd, vaccount a, jurhistory j
where acc='2600701223001'
and c.idcustomer=a.idcustomer
and c.idcustomer=j.idcustomer
and j.desctype=jd.desctype
and j.desctype='211') информация_про_материнскую_компанию,

c.userwork


from vaccount a, address ad, customer c, contact ct, priv_person pp, OUTER jurhistory j, customer_link cl, customer_link_type clt,  tax_registration tr
where acc='2600701223001'

and j.idcustomer=c.idcustomer
and c.idcustomer=a.idcustomer
and c.idcustomer=ad.idcustomer
and c.idcustomer=ct.idcustomer
and cl.linktype=clt.link_type
and pp.idcustomer=cl.idcustmaster
and cl.idcustslave=c.idcustomer
and c.idcustomer=tr.idcustomer
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34677905
pavellift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
столкнулся вот с чем. запрос сейчас выглядит так
select
distinct (full_name), short_name,
acc, codeokpo,
address,

(Select phone, fax, email from vaccount a, contact ct
where acc='2600500004001'
and ct.idcustomer=a.idcustomer),

(select desctext from customer c, jurdesctype jd, vaccount a, jurhistory j
where acc='2600500004001'
and c.idcustomer=a.idcustomer
and c.idcustomer=j.idcustomer
and j.desctype=jd.desctype
and j.desctype='305') ?aiooaoey,

num_reg, dt_reg,

(select risk_kod from risk r, vaccount a
where acc='2600500004001'
and a.idcustomer=r.idcustomer) as risk_kod,

(select remark from spr_risk_kod srk, risk r, vaccount a
where acc='2600500004001'
and a.idcustomer=r.idcustomer
and r.risk_kod=srk.risk_kod) ?ene_eaaaeecaoee_aioiaia,

clt.link_type, clt.remark, surname, name, midname,

(select desctext from customer c, jurdesctype jd, vaccount a, jurhistory j
where acc='2600500004001'
and c.idcustomer=a.idcustomer
and c.idcustomer=j.idcustomer
and j.desctype=jd.desctype
and j.desctype='211') eioi?iaoey_i?i_iaoa?eineo?_eiiiaie?,

c.userwork


from vaccount a,
address ad,
customer c,
-- contact ct,
priv_person pp,
customer_link cl,
customer_link_type clt,
tax_registration tr,
OUTER jurhistory j

where acc='2600500004001'

--and c.cstmr_type='?'
and j.idcustomer=c.idcustomer
and c.idcustomer=a.idcustomer
and c.idcustomer=ad.idcustomer
and c.idcustomer=ct.idcustomer
and cl.linktype=clt.link_type
and pp.idcustomer=cl.idcustmaster
and cl.idcustslave=c.idcustomer
and c.idcustomer=tr.idcustomer


Для этого customera в таблице contact вообще ничего нет поэтому он ему пытается всё вывести ну и самb понимаеnt нифига не получается, как лучше обойти бок? Outer не получается
...
Рейтинг: 0 / 0
Даже не знаю что мне поможет
    #34683053
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Последние 5 (пять) сообщений это "общение с самим собой" :)
Если хотите все таки какую то помощь - последуйте мудрому совету Daugava
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Даже не знаю что мне поможет
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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