ДОСТУП MS: Как я могу считать отличное значение с помощью запроса доступа?

Я использовал шаблон прежде, т.е. web.dev.config, web.prod.config, и т.д., но теперь предпочитаю 'технику' файла переопределения. web.config файл содержит большинство настроек, но внешний файл содержит определенные для среды значения, такие как соединения дб. Хорошее объяснение на блог .

Paul Wilson, я думаю, что это уменьшает сумму до дублирования между файлами конфигурации, которые могут причинять боль при добавлении новых значений / атрибуты.

6
задан Sadat 11 September 2009 в 18:48
поделиться

6 ответов

попробуйте

select ..., count(distinct Training.Tcode) as ..., ...

ИЗМЕНИТЬ - пожалуйста, сейчас посмотрите на это ...

Возьмите следующий код SQL. Первый выбор - это то, как SQL-сервер будет это делать, а второй запрос должен быть совместим с доступом ...

declare @t table (eCode int, tcode int)
insert into @t values(1,1)
insert into @t values(1,1)
insert into @t values(1,2)
insert into @t values(1,3)
insert into @t values(2,2)
insert into @t values(2,3)
insert into @t values(3,1)    

select 
    ecode, count(distinct tCode) countof
from
    @t
group by
    ecode

select ecode, count(*)
from
    (select distinct tcode, ecode
    from  @t group by tcode, ecode) t
group by ecode

Он возвращает следующее:

ecode tcode
1       3 (there are 3 distinct tcode for ecode of 1)
2       2 (there are 2 distinct tcode for ecode of 2)
3       1 (there is 1 distinct tcode for ecode of 3)
4
ответ дан 10 December 2019 в 02:50
поделиться

Примерно год назад я разместил аналогичный вопрос в группах Google. Я получил отличный ответ:


Перекрестная таблица может работать (из оригинального предложения Стива Дассена), пока при подсчете либо фонда, либо субфонда:

  TRANSFORM COUNT(*) AS theCell
  SELECT ValDate,
      COUNT(*) AS StandardCount,
      COUNT(theCell) AS DistinctCount
  FROM tableName
  GROUP BY ValDate
  PIVOT fund IN(Null)

, который для каждого дня (группы) вернет количество записей и количество различных (отдельных) фондов.

Измените

PIVOT fund IN(Null)

на

PIVOT subfund IN(Null)

, чтобы получить то же самое для субфондов.

Надеясь, что это поможет, Вандергаст, Access MVP


Не знаю, сработает ли это, но вот ссылка на этот пост .

2
ответ дан 10 December 2019 в 02:50
поделиться

Взгляните на эту запись в блоге, похоже, вы можете сделать это с помощью подзапросов ....

http://blogs.msdn.com/access/archive/2007/09 /19/writing-a-count-distinct-query-in-access.aspx

0
ответ дан 10 December 2019 в 02:50
поделиться

попробуйте это:

SELECT DISTINCT e.ETCode, t.TTitle, t.Tcomponent, 
      t.TImpliment_Partner, t.TVenue, t.TStartDate, 
      t.TEndDate, e.EDate, a.QCode, a.Answer, 
      q.SL, q.Question,
      Count(a.Answer) AnswerCount,
      Min(Select Count(*) 
       From (Select Distinct TCode From Training) As Z ) TCodeCount    
FROM Evaluation As e 
   JOIN Training AS t ON e.ETCode=t.TCode
   JOIN Answer AS a ON e.ECode=a.ECode
   JOIN Questions AS q ON a.QCode=q.QCode
GROUP BY e.ETCode, a.QCode, t.TTitle, t.Tcomponent, 
     t.TImpliment_Partner, t.Tvenue, a.Answer, q.Question, 
     t.TStartDate, t.TEndDate, Evaluation.EDate, q.SL
ORDER BY a.QCode, a.Answer;
-1
ответ дан 10 December 2019 в 02:50
поделиться

Садат, используйте такой подзапрос:

SELECT DISTINCT Evaluation.ETCode, Training.TTitle, Training.Tcomponent, Training.TImpliment_Partner, Training.TVenue, Training.TStartDate, Training.TEndDate, Evaluation.EDate, Answer.QCode, Answer.Answer, Count(Answer.Answer) AS [Count], Questions.SL, Questions.Question,
(SELECT COUNT(*) FROM Training t2 WHERE t2.TCode = Evalution.ETCode) as TCodeCount
FROM ((Evaluation INNER JOIN Training ON Evaluation.ETCode=Training.TCode) INNER JOIN Answer ON Evaluation.ECode=Answer.ECode) INNER JOIN Questions ON Answer.QCode=Questions.QCode
GROUP BY Evaluation.ETCode, Answer.QCode, Training.TTitle, Training.Tcomponent, Training.TImpliment_Partner, Training.Tvenue, Answer.Answer, Questions.Question, Training.TStartDate, Training.TEndDate, Evaluation.EDate, Questions.SL
ORDER BY Answer.QCode, Answer.Answer;
2
ответ дан 10 December 2019 в 02:50
поделиться

Мне удалось создать отдельное значение счетчика в Access, выполнив следующие действия:

select Job,sum(pp) as number_distinct_fruits

from

(select Job, Fruit, 1 as pp

from Jobtable group by Job, Fruit) t

group by Job

Вы должны быть осторожны, как будто есть пустое / пустое поле (в моем поле фруктового кода) группа будет считать это записью. Предложение Where во внутреннем select игнорирует их. Я разместил это в своем блоге, но обеспокоен тем, что нашел ответ слишком легко - другие здесь, похоже, думают, что вам нужно два подзапроса чтобы заставить эту работу. Жизнеспособно ли мое решение? Четкие группировки в Access

2
ответ дан 10 December 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: