powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Подскажите с запросом
3 сообщений из 3, страница 1 из 1
Подскажите с запросом
    #38519834
Здравствуйте!
вроде простой запрос - но не получается...посдкажите как правильно сделать?

Есть три таблицы:
ddl Adaptive Server Enterprise/15.0.3/EBF ...
Код: sql
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.
46.
create table #tbl_43311 (p_date datetime, ObjectNo int, p_data int)

insert #tbl_43311
select '2014-01-01',619, 10
union all
select '2014-01-01',620,70
union all
select '2014-01-01', 621,20
union all
select '2014-01-02',619, 90
union all
select '2014-01-02',620,30
union all
select '2014-01-02', 621,80


create table #tbl_function (tblId int, ObjectTypeId int, VersionId int)

insert #tbl_function
select 43311, 55555, 1356609055
union all
select 43311, 55555, 1356609067
union all
select 43311, 55555, 1356609088
union all
select 43311, 55555, 1356609011

create table #tbl_Object (ObjectTypeId int, ObjectNo int,ObjectName varchar(10))

insert #tbl_Object
select 55555, 619, 'Aftw'
union all
select 55555, 620, 'Ampu'
union all
select 55555, 621, 'Acrp'
union all
select 66666, 619, 'Bftw'
union all
select 66666, 620, 'Bmpu'
union all
select 66666, 621, 'Bcrp'


select * from #tbl_43311
select * from  #tbl_function
select * from  #tbl_Object



#tbl_43311
p_dateObjectNop_data2014-01-01 00:00:00.0619102014-01-01 00:00:00.0620702014-01-01 00:00:00.0621202014-01-02 00:00:00.0619902014-01-02 00:00:00.0620302014-01-02 00:00:00.062180
#tbl_function
tblIdObjectTypeIdVersionId43311555551356609055433115555513566090674331155555135660908843311555551356609011
#tbl_Object
ObjectTypeIdObjectNoObjectName55555619'Aftw'55555620'Ampu'55555621'Acrp'66666619'Bftw'66666620'Bmpu'66666621'Bcrp'
хочу выбрать данные из #tbl_43311 и подставить вместо ObjectNo - ObjectName из #tbl_Object, используя для связи ObjectTypeId.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT 
      o.ObjectName, 
      sum(t.p_data)
FROM 
     #tbl_43311 t,
     #tbl_function f,
     #tbl_Object o
WHERE
     f.tblId = 43311
AND
     f.ObjectTypeId =  o.ObjectTypeId
AND
    t.ObjectNo =  o.ObjectNo
GROUP BY
        o.ObjectName


но данные учетверяются, из за того что 4 разных версии,
пробовал с дистниктом но не работает.
ObjectName 'Ampu'400'Acrp'400'Aftw'400
если указать напрямую ObjectTypeId
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT 
      o.ObjectName, 
      sum(t.p_data)
FROM 
     #tbl_43311 t,
     #tbl_Object o
WHERE
     o.ObjectTypeId = 55555
AND
    t.ObjectNo =  o.ObjectNo
GROUP BY
      o.ObjectName


то все корректно
ObjectName 'Ampu'100'Acrp'100'Aftw'100
но мне неизвестен заранее ни ObjectTypeId,ни версии, а только номер таблицы
...
Рейтинг: 0 / 0
Подскажите с запросом
    #38519933
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Макс Фактор,

Ну так, в лоб

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT 
      o.ObjectName, 
      sum(t.p_data)
FROM 
     #tbl_43311 t,
     #tbl_Object o
WHERE
     o.ObjectTypeId in (select ObjectTypeId from #tbl_function where tblId = 43311) 
AND
    t.ObjectNo =  o.ObjectNo
GROUP BY
        o.ObjectName



Сейчас ASE под рукой нет! Так что, не проверял
...
Рейтинг: 0 / 0
Подскажите с запросом
    #38521381
max factor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cherrex_Den ,

спасибо!
работает
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Подскажите с запросом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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