Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / как это будет в T-SQL / 10 сообщений из 10, страница 1 из 1
15.06.2005, 17:33
    #33118023
teran
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как это будет в T-SQL
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
select c.choice_id
    ,c.choice_text
    ,results.replies
    ,total.total
from CHOICES c
    inner join
        (select cr.choice_id as choice_id
            ,cr.q_id as q_id
            ,count(cr.r_id) as replies
        into #results
        from CHOICES_RESULTS cr
        group by cr.choice_id
            ,cr.q_id
        ) #results on c.choice_id=results.choice_id and c.q_id=results.q_id
    inner join
        (select q_id as q_id
            ,count(r_id) as total
        from CHOICES_RESULTS
        group by q_id
        ) total on total.q_id=results.q_id
это на db2 посоветовали, с использованием временных таблиц
...
Рейтинг: 0 / 0
15.06.2005, 22:11
    #33118394
teran
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как это будет в T-SQL
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
select c.choice_id
    ,c.choice_text
    ,results.replies
    ,total.total
from CHOICES c
    inner join
        (select cr.choice_id as choice_id
            ,cr.q_id as q_id
            ,count(cr.r_id) as replies        
        from CHOICES_RESULTS cr
        group by cr.choice_id
            ,cr.q_id
        ) results on c.choice_id=results.choice_id and c.q_id=results.q_id
    inner join
        (select q_id as q_id
            ,count(r_id) as total
        from CHOICES_RESULTS
        group by q_id
        ) total on total.q_id=results.q_id

вот это оригинал :)
...
Рейтинг: 0 / 0
16.06.2005, 11:18
    #33118979
riman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как это будет в T-SQL
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
inner join
        (select cr.choice_id as choice_id
            ,cr.q_id as q_id
            ,count(cr.r_id) as replies        
        from CHOICES_RESULTS cr
        group by cr.choice_id
            ,cr.q_id
        ) results on c.choice_id=results.choice_id and c.q_id=results.q_id
Кто знает как вот эту конструкцию на сайбейс диалекте написать?
Т.е. нужно создать временную таблицу в пределах statement (temporary table in statement)

Компилер выдает ошибку
Error: Incorrect syntax near 'inner'.
(State:42000, Native Code: 66)
Error: Incorrect syntax near 'results'.
(State:42000, Native Code: 66)
...
Рейтинг: 0 / 0
16.06.2005, 18:13
    #33120343
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как это будет в T-SQL
Не бывает такого в ASE. Либо из подзапросов "into #results" убирай,
либо вообще подзапросы делай flatten (как это по-русски-то будет ?).
Дело в том, что ASE вообще долгое время не поддерживал DERIVED TABLES (подзапросы во FROM), и стал поддерживать только сейчас.
А into ... в подзапросах и temporary table in statement вообще никогда не было.
Надо тебе temporary table - делай, при чем здесь statement ?

На худой конец, если не сможешь запрос переписать, можно либо сделать из
подзапросов views, и в запросе использовать их, либо сделать в несколько запросов с промежуточными временными таблицами.
...
Рейтинг: 0 / 0
16.06.2005, 18:26
    #33120368
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как это будет в T-SQL
Наверное ты хотел этого :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select
  c.choice_id, c.q_id,
  c.choice_text,
  count(res.r_id) as replies,
  ( select count(tot.r_id) from CHOICES_RESULTS tot where tot.q_id = c.q_id ) as total
from CHOICES c
join CHOICES_RESULTS res on c.choice_id = res.choice_id and c.q_id = res.q_id
group by c.choice_id, c.q_id, c.choice_text

Хоть и не в моих правилах писать для других запросы ...
...
Рейтинг: 0 / 0
16.06.2005, 18:28
    #33120373
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как это будет в T-SQL
Или можно так :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select
  c.choice_id, c.q_id,
  c.choice_text,
  ( select count(res.r_id) from CHOICES_RESULTS res where c.choice_id = res.choice_id and c.q_id = res.q_id
  )  as replies,
  ( select count(tot.r_id) from CHOICES_RESULTS tot where tot.q_id = c.q_id ) as total
from CHOICES c
...
Рейтинг: 0 / 0
17.06.2005, 08:53
    #33120862
riman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как это будет в T-SQL
авторДело в том, что ASE вообще долгое время не поддерживал DERIVED TABLES (подзапросы во FROM), и стал поддерживать только сейчас.
Это в какой версии?
автор
А into ... в подзапросах и temporary table in statement вообще никогда не было.

teran возьми на заметку.

авторНадо тебе temporary table - делай, при чем здесь statement ?
Здесь видимо простое не понимание. В DB2 имеются несколько видов temporary tables.
- таблицы видимые в пределах одного запроса
- таблицы видимые в пределах одной сессии (aka GLOBAL TEMPORARY TABLES)
...
Рейтинг: 0 / 0
17.06.2005, 08:56
    #33120865
riman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как это будет в T-SQL
черт, случайно ctrl+enter нажал...

teran'у нужны первые. Как сделать?

авторDERIVED TABLES (подзапросы во FROM)
и
авторtemporary table in statement
насколько я теперь понял - это одно и то же.
Какой синтаксис у DERIVED TABLES?
...
Рейтинг: 0 / 0
17.06.2005, 08:57
    #33120866
teran
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как это будет в T-SQL
MasterZivНе бывает такого в ASE. Либо из подзапросов "into #results" убирай,
либо вообще подзапросы делай flatten (как это по-русски-то будет ?).
Дело в том, что ASE вообще долгое время не поддерживал DERIVED TABLES (подзапросы во FROM), и стал поддерживать только сейчас.
А into ... в подзапросах и temporary table in statement вообще никогда не было.
Надо тебе temporary table - делай, при чем здесь statement ?

На худой конец, если не сможешь запрос переписать, можно либо сделать из
подзапросов views, и в запросе использовать их, либо сделать в несколько запросов с промежуточными временными таблицами.

да, я пытался смастерить "into #results" потом когда постил в форум забыл убрать свои попытки...
...
Рейтинг: 0 / 0
20.06.2005, 14:13
    #33124671
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как это будет в T-SQL
riman авторДело в том, что ASE вообще долгое время не поддерживал DERIVED TABLES (подзапросы во FROM), и стал поддерживать только сейчас.
Это в какой версии?


В 12.5.0.3 или 12.5.3 появилось ... не помню точно.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / как это будет в T-SQL / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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