Поиск:

Ответ в темуСоздание новой темы Создание опроса
> глупый вопрос, запрос SQL - выборка 
:(
    Опции темы
AKN
Дата 11.1.2006, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.11.2005

Репутация: нет
Всего: нет



Есть некая таблица вида:

1 А =
2 В -
3 А =
4 А =
5 В %
6 В %
7 А -
8 В %
9 С =

... ... ...

(чисто условно)
1. Получить бы запрос сколько в поле 2 содержится записей "В", сколько "А", "С" и т.д. Логика подсказывает что нужно использовать оператор Count, но как это сделать на практике? Заранее всем благодарен. Может кто подскажет пару ссылок на литературу по запросам, т.к. существующая у меня не подходит...

PM MAIL   Вверх
Vit
Дата 11.1.2006, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Код

Select count(*), Field2 From MyTable Group by Field2




--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
offline
Дата 11.1.2006, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: 7
Всего: 7



а в Аксесе можно так извратиться smile


Код

SELECT Count(Поле1) AS [Count-Id], Left(Поле2,1) AS Gruppirovka
FROM Таблица
GROUP BY Left(Поле2,1)
HAVING (((Left(Поле2,1))="A")) OR (((Left(Поле2,1))="B")) OR (((Left(Поле2,1))="C"));

PM MAIL   Вверх
AKN
Дата 12.1.2006, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.11.2005

Репутация: нет
Всего: нет



Спасибо, все заработало ( я имею ввиду
Цитата
Select count(*), Field2 From MyTable Group by
), но подчитать бы как это все работает....
PM MAIL   Вверх
AKN
Дата 12.1.2006, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.11.2005

Репутация: нет
Всего: нет



Код

Select count(*), Field2 From MyTable Group by Field2


а как сделать вывод количества не по всему полю, а допустим, только по записям, где поле №3 равно "="?

PM MAIL   Вверх
offline
Дата 12.1.2006, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: 7
Всего: 7



А какя хоть база?

добавь

Код

WHERE поле3 = "="


Это сообщение отредактировал(а) offline - 12.1.2006, 16:30
PM MAIL   Вверх
Vit
Дата 12.1.2006, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Цитата(AKN @ 12.1.2006, 02:31 Найти цитируемый пост)

но подчитать бы как это все работает....



Любой букварь по базам данных, найти главу "Аггрегативные функции"


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
AKN
Дата 12.1.2006, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.11.2005

Репутация: нет
Всего: нет



сейчас найду букварь, буду читать, а то сделал типа :

Код

procedure TForm3.Button1Click(Sender: TObject);
var names:string; i:integer;
begin
i:=0;
names:='';
with form1.qzapr do
  begin
  for  i :=0 to ListBox1.Items.Count - 1 do
    begin
    if ListBox1.Selected[i] then
      begin
      names:=names + '"'  + ListBox1.Items[i] + '"' + 'and dat between (' + '"'+ datetostr(DateTimePicker1.date)+'"' + ')' + ' and ('+'"'+datetostr(DateTimePicker2.date)+'"'  +') '  +'or name =  ';
      end;
    end;
   end;
Delete(names, Length(names)-11, 20);
Form1.qzapr.Close;
Form1.qzapr.SQL.Text:='SELECT name,count(*) FROM got where  name = ' + names +'  group by name order by name';
Form1.DataSource1.DataSet:=form1.qzapr;
Form1.qzapr.open;
end;


т.е. весь запрос формируется обычной строкой типа name = "Иванов И.И." and date between (дата1) and (дата2) - тупо, но вроде работает...

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0476 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.