|
Вопрос # 5 347/ вопрос решён / |
|
Здравствуйте, уважаемые эксперты! Не знаю, как сделать «запрос в запросе», и вообще возможно ли это?! Например по ниже приведенному коду я делаю запрос по столбцу «Иногородние» равняющемуся значению «Да», но дело в том что из этого полученного числа программа должна осуществить второй запрос по столбцу «Пол». Т. е показать сколько иногородних, и сколько из них женского пола и мужского пола. Пожалуйста помогите, решить проблему!?
Приложение: Переключить в обычный режим- datamodule3.ADOQuery2.SQL.Clear;
-
- datamodule3.ADOQuery2.Active:=true;
- form7.sEdit5.Text:= inttostr (datamodule3.ADOQuery2.RecordCount);
 |
Вопрос задал: alexlafa (статус: Посетитель)
Вопрос отправлен: 31 мая 2011, 01:47
Состояние вопроса: решён, ответов: 1.
|
Ответ #1. Отвечает эксперт: Мережников Андрей
Здравствуйте, alexlafa!
Сделайте вот так:
datamodule3.ADOQuery2.SQL.Text:='select count(*) as vsego,count(case when Пол=''М'' then 1 else 0 end) as kman from
Таблица1 where Иногородние=''Да''';
тогда просто возьмете из полученного запроса значения полей:
vsego - всего иногородних
kman - количество среди них мужчин, ну а количество женщин = vsego-kman
 |
Ответ отправил: Мережников Андрей (статус: Абитуриент)
Время отправки: 31 мая 2011, 05:46
Оценка за ответ: 5
Комментарий к оценке: Спасибо!
|
Мини-форум вопроса
Всего сообщений: 25; последнее сообщение — 3 июня 2011, 05:53; участников в обсуждении: 4.
Страницы: [« Предыдущая] [1] [2]
|
Мережников Андрей (статус: Абитуриент), 1 июня 2011, 21:53 [#21]:
Цитата (bugmenot):
VARCHAR(1), лолшто? CHAR(1)
не понял слова "лолшто".
чем отличается char от varchar знаете?
|
|
bugmenot (статус: 3-ий класс), 1 июня 2011, 23:31 [#22]:
Цитата (Мережников Андрей):
не понял... чем отличается char от varchar знаете? В том-то и проблема, что я - знаю.
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
|
Мережников Андрей (статус: Абитуриент), 2 июня 2011, 20:39 [#23]:
to buqmenot - насчет комментария про размер поля для хранения значения согласен - char(1) - занимает 1 байт, varchar(1) - 3 байта (надо же где-то хранить признак конца строки).
Все-таки - что значит слово "лолшто"?
|
|
bugmenot (статус: 3-ий класс), 2 июня 2011, 21:38 [#24]:
Цитата (Мережников Андрей):
char(1) - занимает 1 байт, varchar(1) - 3 байта (надо же где-то хранить признак конца строки)
Это всё конечно так, но я так и не увидел смысла экономить байтики, вместо того, чтобы запроектировать базу правильно™. Мы же БД обсуждаем, а не частности реализации хранилища.
Цитата (Мережников Андрей):
что значит слово "лолшто"?
Так надо же загуглить и всё будет ;-)
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
|
Мережников Андрей (статус: Абитуриент), 3 июня 2011, 05:53 [#25]:
Цитата (bugmenot):
вместо того, чтобы запроектировать базу правильно
правильное проектирование БД подразумевает, в том числе, и разумное расходование "байтиков". Но, поскольку, все это не имеет прямого отношения к заданному автором вопросу - предлагаю закончить обсуждение тонкости проектирования БД.Тем более, что это имеет смысл при обсуждении реализации конкретного сервера. На некоторых сервера реализован битовый тип - как раз для хранения логических значений (вроде бы и числовой, т.к. значения 0 и 1, в то же время занимает 1 бит при некоторых условиях)
|
6 июня 2011, 23:25: Статус вопроса изменён на решённый (изменил автор вопроса — alexlafa): Решен
Страницы: [« Предыдущая] [1] [2]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|