Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Сложный SELECT / 6 сообщений из 6, страница 1 из 1
11.08.2004, 15:39
    #32644916
Cyr
Cyr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный SELECT
Есть табличка с полями:
Name - строка(Сотрудник)
CalKind- число (1-начисения, 2-удержания)
Result - число (Сумма)

Требуется вывести в одном запросе:

name;
sum(Result) where CalKind=1;
sum(Result) where CalKind=2;
(sum(Result) where CalKind=1) - (sum(Result) where CalKind=2)

Как?
...
Рейтинг: 0 / 0
11.08.2004, 17:51
    #32645327
zayac
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный SELECT
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select 
  t1.name,
  t1.res,
  t2.res,
  t1.res-t2.res
from 
    (select name,sum(result) res from test where calkind= 1  group by name) t1,
    (select name,sum(result) res from test where calkind= 2  group by name) t2
where
    t1.name=t2.name
...
Рейтинг: 0 / 0
12.08.2004, 10:39
    #32645993
Cyr
Cyr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный SELECT
А этот запрос должен везде работать?
у меня SQL Explorer из Delphi выдаёт ошибку:
'Invalid use of keyword.
Token: select
Line number: 7'
Не нравится ему select во from...
...
Рейтинг: 0 / 0
14.08.2004, 18:23
    #32649776
Dedushka Mazai
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный SELECT
select name, sum(result*(2-calkind)), sum(result*(calkind-1)), sum(result*(2-calkind)) - sum(result*(calkind-1))
from table1
group by name
...
Рейтинг: 0 / 0
16.08.2004, 15:33
    #32651156
Cyr
Cyr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный SELECT
Dedushka Mazai
Интересный вариант. Спасибо.
А вот если видов CalKind будет не 2 а много, тогда как?
...
Рейтинг: 0 / 0
18.08.2004, 14:43
    #32654907
Dedushka Mazai
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный SELECT
никак. тогда надо будет группировать по name, calkind:

select sum(result), name, calkind from table1 group by name, calkind

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


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