Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 6
1

Delphi + sql

24.05.2012, 10:28. Показов 1103. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток форумчане! подскажите пожалуйста одну вещь. Существует таблица с a,b,c,d...u столбцами и 434 записями. Каждые 14 записей отвечают за 1 день недели, т.е. 1..14-1 января,15..28-2 января и так до конца месяца. собственно вопрос как сформировать с помощью sql запроса отчёт за весь месяц. получается, что нужно в 1 ячейку dbgrid вывести а1+а14+а28... во вторую ячейку b1+b14+b28....
выложу в виде таблички ,чтобы понятнее было
Delphi + sql
если что-то не понятно пишите. разъясню подробнее. ответившим буду очень благодарен!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.05.2012, 10:28
Ответы с готовыми решениями:

SQL-запрос в Delphi и в Access один и тот же, но в Delphi не работает
ри обращение к базе в Access я использую код: with ADOQueryMain do begin Active:=false;...

SQL и ComboBox в Delphi. Нужно чтобы при выборе специальности в комбобоксе это значение вносилось в SQL запрос
procedure TForm3.Button2Click(Sender: TObject); begin try ADOQuery1.SQL.Clear;...

Delphi и sql
есть 2-форма на 1-ой форме dbgrid в нем данные из sql, на форму 2,в dbgrid хочу вывечти данные из...

sql+delphi
я только начал осваивать sql и delphi, базу подключил связи настроил,нужна помощь в следующем: 1)...

10
217 / 81 / 6
Регистрация: 23.04.2012
Сообщений: 340
24.05.2012, 13:28 2
не знаю, подойдёт ли тебе это. Делал в Delphi выборку из таблицы за определёный период времени:

Delphi
1
2
3
4
5
6
7
DataModule1.Query1.Close;
DataModule1.Query1.SQL.Clear;
DataModule1.Query1.SQL.Add('SELECT Data , FIO, Plata'+#13#10+
'FROM "Gruppa.DB" Gruppa  WHERE   (Data >=:N) AND  (Data <=:K) ORDER BY Data');
DataModule1.Query2.Params.ParamByName('N').AsDate:=DateTimePicker1.Date;
DataModule1.Query2.Params.ParamByName('K').AsDate:=DateTimePicker2.Date;
DataModule1.Query2.Open;
если код "корявенький" - прошу сильно не пинать
0
39 / 71 / 10
Регистрация: 03.02.2012
Сообщений: 362
24.05.2012, 17:11 3
Какая БД?
И приведи пример таблицы из которой будет идти выборка.
0
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
24.05.2012, 17:59 4
Цитата Сообщение от ramolyan Посмотреть сообщение
Существует таблица с a,b,c,d...u столбцами и 434 записями. Каждые 14 записей отвечают за 1 день недели, т.е. 1..14-1 января,15..28-2 января и так до конца месяца.
Наверно, не день недели, а день месяца. (Т.е. для каждого дня существует 14 записей.)
Если каждая из записей имеет поле дата (DDATE), номер порции (NORD от 1 до 14) и поле со значением (NVAL), то можно сделать, например, так:

SQL
1
2
3
4
5
SELECT NORD,SUM(NVAL) AS NVAL
FROM MYTABLE
WHERE DDATE BETWEEN :DATE1 AND :DATE2
GROUP BY NORD
ORDER BY NORD
где DATE1 и DATE2 соответственно первое и последнее число требуемого периода.

А вот если Вы хотите еще и по колонкам расставить, то все будет намного сложнее.
Что такое a1,b1.. в Вашем примере?
0
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 6
24.05.2012, 23:11  [ТС] 5
Цитата Сообщение от perepe4a Посмотреть сообщение
Какая БД?
И приведи пример таблицы из которой будет идти выборка.
БД access. пример таблицы
Delphi + sql
Она не полная. но это не суть важно. мне бы понять суть как сделать для нескольких первых ячеек, а дальше я разовью тему.
0
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 6
24.05.2012, 23:27  [ТС] 6
Цитата Сообщение от ramolyan Посмотреть сообщение
БД access. пример таблицы Вложение 155232 Она не полная. но это не суть важно. мне бы понять суть как сделать для нескольких первых ячеек, а дальше я разовью тему.
a1, b1-это я имел ввиду сумма каких записей должна получиться в конечном варианте. приведу пример на словах чтобы было понятнее. каждый столбик отвечает за конкретную организацию, каждая запись за кол-во работ в конкретный день. Вложение 155240 таких разновидностей работ именно 14. нужно сочинить отчёт за месяц. для этого нужно сложить для 1 организации 1 мероприятие а1+а15+а29 и т.д. Для 2 организации 1 мероприятие b1+b15+b29.../ спасибо тем кто помогает в этом нелёгком для меня вопросе. сам понимаю, что запрос получается не очень то простой на первый взгляд.

Добавлено через 2 минуты
Цитата Сообщение от albor Посмотреть сообщение
Наверно, не день недели, а день месяца. (Т.е. для каждого дня существует 14 записей.)
именно так, я немного ошибся
0
39 / 71 / 10
Регистрация: 03.02.2012
Сообщений: 362
25.05.2012, 10:11 7
Тебе нужно разбить на группы, чтобы 14 и 28 имели одинаковый код.
Если я правильно понял, то запрос должен выглядеть примерно так:

Oracle 11 SQL
1
2
3
SELECT MOD(id-1,14)+1,SUM(a),SUM(b),...,SUM(u)
FROM tab1
GROUP BY MOD(id-1,14)
0
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
25.05.2012, 11:05 8
Цитата Сообщение от ramolyan Посмотреть сообщение
БД access. пример таблицы..
У Вас очень оригинальный подход к построению БД..
Если я правильно понял, в полях (столбцы таблицы) находятся однотипные данные..
и Вы хотите их как то обрабатывать. Можно, но сложно. Очень сложно.
Может лучше базу привести в более удобный вид?
0
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 6
25.05.2012, 12:13  [ТС] 9
Цитата Сообщение от albor Посмотреть сообщение
У Вас очень оригинальный подход к построению БД..
Если я правильно понял, в полях (столбцы таблицы) находятся однотипные данные..
и Вы хотите их как то обрабатывать. Можно, но сложно. Очень сложно.
Может лучше базу привести в более удобный вид?
согласен что сама таблица получается немного странноватая, но дело в том, что строить таблицу на каждый день тоже не выход.
0
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 6
25.05.2012, 12:22  [ТС] 10
Delphi + sql
гляньте скрин из excel может станет понятнее суть проблемы. как вы видите это заполняется каждый день. а внизу есть лист с названием месяца. В нём все ячейки с совпадающими именами из всех листов складываются т.е. лист1.с1+лист2.с1+... и тд. примерно тоже самое я организовал в access, но там 1 лист excel это 14 записей в таблице. и чтобы посчитать данные за месяц мне нужно складывать данные через каждые 14 записей.
0
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 6
26.05.2012, 22:55  [ТС] 11
всё сам разобрался с запросом. использовал динамический запрос по двойному циклу
0
26.05.2012, 22:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2012, 22:55
Помогаю со студенческими работами здесь

Delphi SQL
Всем добрый вечер. Возник вопрос - как вывести последнее значение из поля таблицы и на 1 больше в...

SQL+Delphi
Здравствуйте, нужно через ADO в БД создать новую таблицу (SQL запрос). Заранее спасибо!

Delphi SQL
Здравствуйте! Возникла такая проблема! Значит,на форме ComboBox,Memo. Есть таблица в Оракле &quot;KURS&quot;...

SQL в Delphi
Всем доброго времени суток, подскажите кто в курсе как правильно при использовании insert и update...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru