الوصول إلى MS:كيف يمكنني حساب قيمة مميزة باستخدام استعلام الوصول؟

StackOverflow https://stackoverflow.com/questions/1412442

  •  06-07-2019
  •  | 
  •  

سؤال

هنا هو الاستعلام المعقد الحالي الوارد أدناه.

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
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;

يوجد عمود آخر Training.TCode.أحتاج إلى حساب رمز التدريب المميز، هل يمكن لأي شخص مساعدتي؟اذا كنت بحاجة الى مزيد من المعلومات، واسمحوا لي أن أعرف

هل كانت مفيدة؟

المحلول

يحاول

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)

نصائح أخرى

ونشرت لي سؤال مماثل قبل نحو عام في مجموعات جوجل. تلقيت جوابا ممتازة:


وA جدولي يمكن القيام به (من الاقتراح الأصلي من ستيف Dassin) طالما كما يمكنك الاعتماد إما على الأموال، وإما subfund:

  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)

للحصول على واحدة، للحصول على أموال الفرعية.

وعلى أمل أنها قد تساعد، Vanderghast، يمكن وصول MVP


وأنا لا أعرف إذا كان هذا العمل، ولكن <لأ href = "http://groups.google.com/group/microsoft.public.access.queries/browse_thread/thread/d79d1858a5880e9c/0ed6bd6c66e0ce2f#0ed6bd6c66e0ce2f" يختلط = "noreferrer نوفولو"> وهنا رابط لهذا المنصب .

والسادات، واستخدام فرعي مثل هذا:

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;

وتمكنت من القيام قيمة متميزة العد في الوصول عن طريق القيام بما يلي:

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 في اختيار الداخلية سيتم تجاهل تلك بالرغم من ذلك. لقد وضعت هذا في بلدي بلوق، ولكن أشعر بالقلق أنني اكتشفت الإجابة بسهولة جدا - الآخرين هنا يتصورون أن تحتاج اثنين الاستفسارات الفرعية لجعل هذا العمل. هل لي حل قابل للحياة؟ التجمعات متميزة في الوصول

وإلقاء نظرة على هذا بلوق الدخول، يبدو يمكنك القيام بذلك مع الاستعلامات الفرعية ....

<وأ href = "http://blogs.msdn.com/access/archive/2007/09/19/writing-a-count-distinct-query-in-access.aspx" يختلط = "نوفولو noreferrer" > http://blogs.msdn.com/access/archive/2007/09/19/writing-a-count-distinct-query-in-access.aspx

وأقترح

select R_rep,sum(pp) as number_distinct_Billnos from (select R_rep, Billno, 1 as pp from `Vat_Sales` group by R_rep, Billno) t group by R_rep

وحاول هذا:

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;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top