Форум программистов
Реклама:
Гарантия безопасности сети с UTM-системой ИКС.
Защита ПД, межсетевой экран, контроль доступа, фильтрация трафика, система предотвращения вторжений.
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 11.08.2017, 12:24   #1
Aleksey_25
Новичок
 
Регистрация: 18.07.2017
Сообщений: 3
Репутация: 10
По умолчанию Совершение математических действий с элементами DataGridView - C#

Добрый день!

Имеется локальная БД Access, в которой содержится две связанных таблицы – Наименование услуги и действия по услуге. Обе таблицы ключуются по ID_услуги. В них заносится информация о том, какие услуги клиентам были оказаны сотрудниками. Стоит обратить внимание, что есть случаи, когда имеется значение по услуге, но нет действий по ней.

Таблица 1 Наименование услуги содержит: ID, Дата, ФИО сотрудника, Наименование услуги (картинка 1 - Tables_1).


Таблица 2 – Действия по услуге содержит: ID, ID_услуги, Наименование действия (картинка 2 - Tables_2).

Задача: Составить отчет по выполненной работе сотрудниками с выгрузкой в xls. Форма отчета (картинка 3 - Zadaha):


Я предположил, что можно попробовать решить эту задачу следующим образом:

1. Составляем sql запрос с

Цитата:
LEFT JOIN – Select A.ID, A.Дата,A.ФИО сотрудника,A.Услуга, B.Действия по услуге FROM A LEFT JOIN B ON A.ID = B.ID_услуга.
На выходе получим такой результат (картинка 4 - Tables_3):

2. Далее этот результат заносим в DataTable и передаем в DGV.

3. Потом провести расчеты по DGV, типа DISTINCT/COUNT и т.п., но ни как не могу понять, возможно ли это реализовать … И что самое главное, как сгруппировать все это по ФИО, чтобы вывести корректный отчет (см.рис.1(картинка 5 - Ris_1))
Подскажите, пожалуйста, как можно вывести подобный отчет (см. рис.1(картинка 5 - Ris_1)) и стоит для этого использовать DGV, может есть другие способы?
Изображения
Тип файла: jpg Tables_1.JPG (41.3 Кб, 18 просмотров)
Тип файла: jpg Tables_2.JPG (13.6 Кб, 18 просмотров)
Тип файла: jpg Zadaha.JPG (15.1 Кб, 18 просмотров)
Тип файла: jpg Tables_3.JPG (65.2 Кб, 18 просмотров)
Тип файла: jpg Ris_1.JPG (26.0 Кб, 18 просмотров)

Последний раз редактировалось Aleksey_25; 11.08.2017 в 12:28.
Aleksey_25 вне форума   Ответить с цитированием
Старый 11.08.2017, 12:52   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 22,085
Репутация: 5003
По умолчанию

нужно получить таблицу, которая на Рис.1 ?
других столбцов в этой таблице не предполагается?
тогда это можно получить одним запросом.

выложите на форум архив с тестовой БД, тогда будет проще набросать готовый вариант запроса.
Serge_Bliznykov на форуме   Ответить с цитированием
Старый 11.08.2017, 15:23   #3
evg_m
Профессионал
 
Регистрация: 20.04.2008
Сообщений: 4,387
Репутация: 1965
По умолчанию

Цитата:
типа DISTINCT/COUNT и т.п., но ни как не могу понять, возможно ли это реализовать … И что самое главное, как сгруппировать все это по ФИО
Код:

select  fio, 
count(distinct a.услуга), 
sum(case when b.действие по услуге ='стрижка' then 1 else 0 end),
sum(case when b.действие по услуге ='помывка' then 1 else 0 end),
sum(case when b.действие по услуге ='укладка' then 1 else 0 end),
from ....

group by фио

case возможно заменить на if .... then

очень похожая задача и тот же ответ, только другИЕ данные (условие и результаты) в case и/или в условиях "частичного" join.
__________________
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума   Ответить с цитированием
Старый 11.08.2017, 15:28   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 22,085
Репутация: 5003
По умолчанию

по моему, в MS Access вместо CASE нужно использовать IIF()
с остальным согласен.
Serge_Bliznykov на форуме   Ответить с цитированием
Старый 11.08.2017, 15:28   #5
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 16,322
Репутация: 5824
По умолчанию

iif в Access
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Ответ



Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Flash Запрет на совершение повторных действий по IP glazik Общие вопросы Web 3 18.01.2013 02:43
Рисование математических формул Uniskull Помощь студентам 4 30.11.2010 19:49
Парсер математических выражений Granus Общие вопросы Delphi 3 24.06.2009 15:19
Совершение действия в зависимости от показаний таймера alexSX Работа с сетью в Delphi 5 07.04.2009 20:54
Ввод математических формул Temirlan Общие вопросы Delphi 4 20.02.2009 20:24




17:38.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru