Как написать условие для Count в группировке (SQL)?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

Как написать условие для Count в группировке (SQL)?

Сообщение Rojohn » 14.11.2005 (Пн) 14:40

Приветы!
Подскажите синтаксис запроса. Есть запрос:
Код: Выделить всё
SELECT TYPE_UPERSON.TITLE, Count(*) AS Выражение1, Count(*) AS Выражение2
FROM UPERSON INNER JOIN TYPE_UPERSON ON UPERSON.UTYPE_CODE = TYPE_UPERSON.CODE
GROUP BY TYPE_UPERSON.TITLE;

В одном из Count надо поставить условие [UPERSON].[ARHIV]=0. Как это правильно сделать? (HAVING?)

Спасибо за ответы!

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 14.11.2005 (Пн) 14:57

Поскольку джойн внутренний, можно не в Having, а в Where.

Да, и каунты свои определи точнее, а то два раза одно и то же Count(*) селектить - непонятно, зачем.

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

Дык...

Сообщение Rojohn » 14.11.2005 (Пн) 15:08

Дык в том-то и дело, что нужно два Count. Первый простой, а второй с указанным условием и всё это внутри одной группировки. То есть группировка в группировке как бы.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Дык...

Сообщение Andrey Fedorov » 14.11.2005 (Пн) 15:30

Rojohn писал(а):Дык в том-то и дело, что нужно два Count. Первый простой, а второй с указанным условием и всё это внутри одной группировки. То есть группировка в группировке как бы.


Ну можешь так поизвращаться:

Код: Выделить всё
SELECT TYPE_UPERSON.TITLE, COUNT(*) AS Выражение1, SUM(IIF([UPERSON].[ARHIV]=0, 0, 1)) AS Выражение2
FROM UPERSON INNER JOIN TYPE_UPERSON ON UPERSON.UTYPE_CODE = TYPE_UPERSON.CODE
GROUP BY TYPE_UPERSON.TITLE
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

:)

Сообщение Rojohn » 14.11.2005 (Пн) 15:40

Ну, в общем, похоже получилось! :) Спасибо!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 35

    TopList