Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.04.2013, 14:08
VINCENT VINCENT вне форума
Прохожий
 
Регистрация: 03.09.2010
Сообщения: 16
Репутация: 12
По умолчанию Запрос к бд

Доброго дня товарищи программисты помогите пойти по верному пути.

возник интерес создать статистику принятых данных и пихнуть их в dbchart
Как реализовать данное идеи есть, - но это все обходной маневр Состоящий из кучи запросов и обработки данных в цикле с записью в отдельные таблицы.

есть таблица bd вней поля sumpl, date_pay, mask

в sumpl - суммы
date_pay -дата платежей
mask - определяет клиента из справочника

select sum(sumpl) from db where date_pay = '''+data+''' and mask = '''+mask+''' - данный запрос выводит общую сумму платежей за определенный день по определенному клиенту

select count(mask) from db where mask ='''+mask+''' and date_pay = '''+date+''' - так допустим можно получить общее количество платежей за день

можно ли объеденить данные запросы и потом в коде переключатся по полям ? например после выполнения запроса
ADOQ1.fields[0].asstring - сумма платежей
ADOQ1.fields[1].asstring - количество платежей

кто умеет подскажите
Ответить с цитированием
  #2  
Старый 09.04.2013, 15:14
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Код:
SELECT SUM(sumpl), COUNT(mask)
FROM db
WHERE date_pay = '''+data+''' 
  AND mask = '''+mask+'''
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #3  
Старый 09.04.2013, 15:23
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,714
Репутация: 52347
По умолчанию

В общем-то можно, но могут возникнуть проблемы синтаксиса SQL для конкретной БД. Большинство SQL-серверов поддерживают SQL-запрос без секции FROM. Например: Select 1+1.
И по аналогии если просто объединить в одном селекте 2 ваших запроса, то видимо мы получим искомое:
Код:
select (select sum(sumpl) from db where date_pay = '''+data+''' and mask = '''+mask+''') as Res1,(select count(mask) from db where mask ='''+mask+''' and date_pay = '''+date+''') as Res2
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 09.04.2013, 15:31
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,503
Версия Delphi: XE10
Репутация: выкл
По умолчанию

лучше в запросе параметры использовать, заместо таких извращений с кавычками.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:26.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2020

ВКонтакте   Facebook   Twitter