الوصول إلى MS:كيف يمكنني حساب قيمة مميزة باستخدام استعلام الوصول؟
سؤال
هنا هو الاستعلام المعقد الحالي الوارد أدناه.
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;