Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2014, 11:04   #1
User_IR_An
Пользователь
 
Регистрация: 08.04.2014
Сообщений: 26
По умолчанию Сумма по столбцу

Здравствуйте, помогите пожалуйста. Имеется DbgridEh, в нем я в "подвале" вывожу сумму по столбцу "Всего часов". Но вот возникла задача, мне нужно вывести сумму, только тех значений у которых значения в столбце "Номер" разные. Например, имеется три строки у двух из них Номер 1, Всего часов 15, а у третьей Номер 2, Всего часов 10. В подвале должно быть 25.
User_IR_An вне форума Ответить с цитированием
Старый 12.06.2014, 11:13   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Сделай в запросе или программно вычисляемое поле не отображаемое в гриде, данные в него в соответствии с хотелками и в подвале отображай сумму по этому полю
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.06.2014, 11:24   #3
User_IR_An
Пользователь
 
Регистрация: 08.04.2014
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Сделай в запросе или программно вычисляемое поле не отображаемое в гриде, данные в него в соответствии с хотелками и в подвале отображай сумму по этому полю
Не могли бы Вы по подробнее помочь с запросом или с программным вычислением. Я не могу понять как сравнивать записи из одного столбца, сравнить разные столбцы научилась, а тут запуталась
User_IR_An вне форума Ответить с цитированием
Старый 12.06.2014, 11:51   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Например, имеется три строки у двух из них Номер 1, Всего часов 15, а у третьей Номер 2, Всего часов 10. В подвале должно быть 25.
Нужно свой например попытаться формализовать так, что бы не бегать по всем строкам, а вся необходимая информация для вычисляемого поля была в одной строке. Не понятно чем номер 1 лучше номера 2. А если будет 3 и 4 что показывать? Или 2, 3, 15?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.06.2014, 12:04   #5
User_IR_An
Пользователь
 
Регистрация: 08.04.2014
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Нужно свой например попытаться формализовать так, что бы не бегать по всем строкам, а вся необходимая информация для вычисляемого поля была в одной строке. Не понятно чем номер 1 лучше номера 2. А если будет 3 и 4 что показывать? Или 2, 3, 15?
Ну у меня такая задача. http://s019.radikal.ru/i643/1406/ab/69edf9c14377.jpg
вот две строки у них в поле "Индекс" третье значение после "." это есть "номер", так как здесь оно одинаковое, в подвале нужно получить 85
User_IR_An вне форума Ответить с цитированием
Старый 12.06.2014, 12:59   #6
User_IR_An
Пользователь
 
Регистрация: 08.04.2014
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Сделай в запросе или программно вычисляемое поле не отображаемое в гриде, данные в него в соответствии с хотелками и в подвале отображай сумму по этому полю
Спасибо за беспокойство, данную проблему решила, не могли бы Вы помочь еще. Как в delphi в запросе sql, указать что данные берутся из другой ADOQUERY
User_IR_An вне форума Ответить с цитированием
Старый 12.06.2014, 13:24   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Запрос не может данные из другого query брать. А в запросе можно примерно так сделать
Код:
SELECT S.Id,S.Номер,S.Часы,
   CASE WHEN S.Id=(SELECT TOP 1 S1.Id FROM MyTable S1 WHERE S1.Номер=S.Номер ORDER BY S1.Id)
     THEN S.Часы ELSE NULL END AS ЧасыДляСуммирования
  FROM MyTable S
или
Код:
SELECT S.Id,S.Номер,S.Часы,
   CASE WHEN S.Id=(SELECT MIN(S1.Id) FROM MyTable S1 WHERE S1.Номер=S.Номер)
     THEN S.Часы ELSE NULL END AS ЧасыДляСуммирования
  FROM MyTable S
пример для MS SQL
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти числа X и Y, сумма которых равно A, а сумма квадратов равна B. (на C++) Алина92 Помощь студентам 12 04.10.2021 10:14
Сумма с несколькими критериями, подсчёт/сумма нечётных чисел XPsihopaTX Microsoft Office Excel 3 11.10.2012 15:00
Вычисления по одному столбцу d_adilet БД в Delphi 3 28.03.2012 04:15
Суммирование по столбцу Teodoro Microsoft Office Excel 1 29.10.2011 16:31
поиск по столбцу waw БД в Delphi 5 10.06.2010 07:43