|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.11.2010, 19:13 | #1 |
Пользователь
Регистрация: 21.09.2010
Сообщений: 33
|
Повторяющиеся записи, ClientDataSet
У меня немножко похожая тема, на тему повторяющихся записей. бд access. вот такие данные:
Дата | ФИО |Должность| 13.11.10 Иванов Техник 14.11.10 Петров механик 15.11.10 Иванов техник 16.11.10 Сидоров водит. 17.11.10 Иванов техник мне нужно подсчитать общее кол-во рабочих за 4й квартал (здесь ноябрь), как видно по таблице их 3е, а по моему коду показывает 5. отрывок кода примерно такой, использую adoquery: adoquery.SQL.TEXT:='select date,fio,dolzhn, ' + '(select count(fio) from zapr(мое прдестав.) where '+kvartal+') as kol_fio ' + // select(distinct fio) не катит ' from zapros ' + ' order by fio'; '+kvartal+' -в коде выше написан небольшой запрос для даты (кварталов). Переменную kol_fio ставлю в fastreport. Если бы не было выборки даты все было бы гораздо легче, но так как поле дата связано с фамилиями, ФИО "Иванов" становится как-бы уникальным.... как правильно написать запрос?? помогите пожалуйста!!!!!!!!! и еще как правильно записать для поля num(номер документа) процедуру ClientDataSetnumGetText, чтобы grideh объединил все фамилии по документу, например так: Документ| Дата | ФИО |Должность| 123..........13.11.10 Иванов Техник ...............14.11.10 Петров механик 124..........15.11.10 Иванов техник ...............16.11.10 Сидоров водит. ...............17.11.10 Иванов техник сами данные в данный момент записаны так: Документ| Дата | ФИО |Должность| 123..........13.11.10 Иванов Техник 123..........14.11.10 Петров механик 124..........15.11.10 Иванов техник 124..........16.11.10 Сидоров водит. 124..........17.11.10 Иванов техник У нас принято оформлять код специальным тэгом - при помощи кнопочки "#". Только... И не значком #. И не РНР-кодом. И не значком цитаты. И не собственными "ручками". Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе... Модератор Последний раз редактировалось mihali4; 18.11.2010 в 19:37. |
18.11.2010, 20:06 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Код:
I'm learning to live...
|
|
18.11.2010, 20:26 | #3 |
Пользователь
Регистрация: 21.09.2010
Сообщений: 33
|
нет, мне же не только 4 квартал, а все...хотя дело даже не в этом...я в сам select этот date положить не могу...в combobox у меня выбиратеся год (от 2000 до 2010 - любой) а в radiogroup сами кварталы 1,2,3,4 и год полностью... как уже говорила использую adoquery, он у меня соедржит сам запрос и подзапросы.
Код:
Код:
|
18.11.2010, 20:45 | #4 | |||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
Цитата:
Код:
I'm learning to live...
|
|||
18.11.2010, 20:53 | #5 |
Пользователь
Регистрация: 21.09.2010
Сообщений: 33
|
ой я самое важное забыла написать, мне то кол-во неповторяющися полей fio нужно подсчитать...я пробовала через отдельное представление делать просто
Код:
а если прописывать через date1, то уже уникальность теряет свой смысл и если иванов записан как 14.11.2010 так и допустим 15.11.2010 то запрос подсчитает их как 2 разных человека....вот в чем проблема |
19.11.2010, 09:43 | #6 |
Пользователь
Регистрация: 13.10.2010
Сообщений: 96
|
Код:
Код:
to_char(date,'mm.yyyy') - это оракловый синтаксис. Как в Аксессе отрезать месяц, не помню. Суть в том, что для группировки тебе нужно использовать не полную дату (с числом), а только месяц (или квартал).
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (Стив Макконнелл)
|
19.11.2010, 10:06 | #7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
19.11.2010, 18:54 | #8 |
Пользователь
Регистрация: 21.09.2010
Сообщений: 33
|
короче меня никто не понял или я вас, у меня нет проблем с кварталами. у меня все работало до этого, просто не считает кол-во фамилий по дате не в явном смысле, если например я пишу в конце запроса
Код:
а если напишу Код:
|
20.11.2010, 00:28 | #9 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
я не понимаю, что Вы хотите и что Вам надо (соррии)
Цитата:
смотрите, если Вы указываете группировку по полю (по полям) то в SELECT вы можете указать только это поле (поля), которые участвуют в группировке, либо агрегатные функции (агрегатные - это функции, которые применяются к набору данных, это, например, MIN() MAX() AVG() SUM() COUNT() и т.д.) т.е. если Вам нужно в select иметь и поле NUM и поле DATE1 - то укажите эти поля оба в группировке: .... GROUP BY NUM, DATE1 |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Повторяющиеся записи, выборка по дате | Регинка-малинка | Помощь студентам | 2 | 17.11.2010 20:37 |
Повторяющиеся записи в DBLookupComboBox | sl963 | БД в Delphi | 4 | 30.05.2010 07:40 |
повторяющиеся записи | hinku | БД в Delphi | 3 | 18.08.2009 17:25 |
Повторяющиеся записи DBGrid | Crookers | БД в Delphi | 2 | 21.05.2008 13:26 |
Выбрать повторяющиеся записи | Andrei | SQL, базы данных | 2 | 13.09.2007 14:28 |