Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / помогите с SQL запросом ,плиз / 10 сообщений из 10, страница 1 из 1
06.06.2006, 14:43
    #33774983
oleggar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с SQL запросом ,плиз
Есть таблица с полями region ,field1,field2,field3, amount
сначала я вычисляю суммы покупок по регионам и прочим условиям
select sum(amount) from table group by region ,field1,field2,field3,
а потом я хочу узнать ,сколько строк получилось в результате первого запроса .
Пока сделал select count(sum(amount)) from table group by region ,field1,field2,field3 ,работает нормально ,но дико выглядит ,зачем суммы суммировать ?
select distinct count(region ,field1,field2,field3 )-такого оператора нет .А просто посчитать количество строк мои компоненты доступа не позволяют
...
Рейтинг: 0 / 0
06.06.2006, 15:07
    #33775058
TIB
TIB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с SQL запросом ,плиз
Используй глобальную переменную @@rowcount
...
Рейтинг: 0 / 0
06.06.2006, 15:46
    #33775215
oleggar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с SQL запросом ,плиз
первый раз о ней слышу .а как использовать ?пример есть ?
...
Рейтинг: 0 / 0
07.06.2006, 05:24
    #33776421
Владимор Конев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с SQL запросом ,плиз
oleggarЕсть таблица с полями region ,field1,field2,field3, amount
сначала я вычисляю суммы покупок по регионам и прочим условиям
select sum(amount) from table group by region ,field1,field2,field3,
а потом я хочу узнать ,сколько строк получилось в результате первого запроса .
Пока сделал select count(sum(amount)) from table group by region ,field1,field2,field3 ,работает нормально ,но дико выглядит ,зачем суммы суммировать ?
select distinct count(region ,field1,field2,field3 )-такого оператора нет .А просто посчитать количество строк мои компоненты доступа не позволяют
А какой у теб сервер???
Если возможности позволяют, то можно вот так сделать:
Код: plaintext
1.
2.
3.
select sum(amount),
       row_number() over(order by null)
  from table 
 group by region ,field1,field2,field3
...
Рейтинг: 0 / 0
07.06.2006, 05:29
    #33776422
Владимор Конев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с SQL запросом ,плиз
Владимор КоневЕсли возможности позволяют, то можно вот так сделать:
Код: plaintext
1.
2.
3.
select sum(amount),
       row_number() over(order by null)
  from table 
 group by region ,field1,field2,field3

Пардон, немного не то...
Вот так будет правильнее:
Код: plaintext
1.
2.
3.
select sum(amount),
       count( 1 ) over() as cnt
  from table 
 group by region ,field1,field2,field3
...
Рейтинг: 0 / 0
07.06.2006, 06:57
    #33776446
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с SQL запросом ,плиз
Владимор КоневВот так будет правильнее:
Код: plaintext
1.
2.
3.
select sum(amount),
       count( 1 ) over() as cnt
  from table 
 group by region ,field1,field2,field3

А смысл здесь делать over, приводя запрос к OLAP-форме, если не указаны измерения и можно спокойно обычную аггрегацию использовать ?
...
Рейтинг: 0 / 0
07.06.2006, 07:41
    #33776472
Владимор Конев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с SQL запросом ,плиз
ASCRUS Владимор КоневВот так будет правильнее:
Код: plaintext
1.
2.
3.
select sum(amount),
       count( 1 ) over() as cnt
  from table 
 group by region ,field1,field2,field3

А смысл здесь делать over, приводя запрос к OLAP-форме, если не указаны измерения и можно спокойно обычную аггрегацию использовать ?Человеку нужно получить общее число строк в запорсе. IMHO, это как минимум ROLLUP использовать придется, что бы сделать за один проход по данным через группировку, что уже делает её (группировку) не совсем "обычной".
В остальном - согласен, не тот случай, когда нужно юзать столь мощные средства. А так оно как из пушки по воробьям получается...
...
Рейтинг: 0 / 0
07.06.2006, 09:49
    #33776626
oleggar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с SQL запросом ,плиз
Сервер у меня Sybase 11 Enterprise
...
Рейтинг: 0 / 0
07.06.2006, 09:54
    #33776641
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с SQL запросом ,плиз
Если Вы с клиента хотите узнать, сколько записей вернулось, то узнавайте посредством компонент доступа, которые все возвращают кол-во записей в наборе данных.

Если Вы в ХП хотите узнать, то через @@ROWCOUNT:
SELECT @CountRec = @@ROWCOUNT
или
SET @CountRec = @@ROWCOUNT
--
www.rusug.ru - портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
07.06.2006, 10:16
    #33776705
oleggar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с SQL запросом ,плиз
я бы использовал в компоненте rowcount ,только что-то стандартный query и ctlibcomp не всегда возвращают ,пока не понял почему
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / помогите с SQL запросом ,плиз / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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