---
title: "Group By - eller?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/172501-group-by-eller"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Bjuris"
published: "2008-07-01T07:44:31.000Z"
updated: "2008-07-01T08:10:49.000Z"
replies: 1
views: 372
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/172501-group-by-eller"
---

# Group By - eller?

## #1 — Bjuris, 2008-07-01T07:44Z

Jag blir inte riktigt klok.
Har en tabell enl:
AnswerID \|ReportID \| StudentID \| BaseID \| GoalID \| Answer \| osv...

en sp:

```
ALTER PROCEDURE tuser887.GetSavedBaseByStudentID @StudentID uniqueidentifier
AS

	Select answerId, reportId, studentId, Base.BaseName, Topic.TopicName,  answers.GoalId, Answer, Comment, [TimeStamp], CreatedBy,
	sum(case when Answer = 0 then 1 else 0 end) as iGreen,
	sum(case when Answer = 1 then 1 else 0 end) as iOrange,
	sum(case when Answer = 2 then 1 else 0 end) as iRed,
	as totalQuestions
	from MyPlan_Answers AS Answers
	Left Outer JOIN MyPlan_Base AS Base
	ON Base.BaseId = Answers.BaseId
	Left Outer JOIN MyPlan_Goal AS Goal
	ON Goal.GoalId = Answers.GoalId
	Left Outer JOIN MyPlan_Topic AS Topic
	ON Topic.TopicId = Goal.TopicId
	Where studentId = @StudentID
	Group BY CreatedBy, answerId, reportId, studentId, Base.BaseName, Topic.TopicName,  answers.GoalId, Answer, Comment, [TimeStamp], Base.BaseId
	Order by createdBy, Base.Basename, Topic.TopicName
	

RETURN
```

 

Denna returnerar en rad för varje post
ex:
 Admin - 3 - Slöjd -  1 iGreen - 0 iOrange - 0 iRed
 Admin - 3 - Slöjd -  0 iGreen - 1 iOrange - 0 iRed
 Admin - 3 - MA-  1 iGreen - 0 iOrange - 0 iRed
 Admin - 3 - MA-  1 iGreen - 0 iOrange - 0 iRed
 osv

Men jag vill att det skall hämtas ut en rad per \| Admin - 3 - slöjd \| samt summera antal iGreen - summera antal iOrange - summera antal iRed 

ex:
 Admin - 3 - Slöjd -  1 iGreen - 1 iOrange - 0 iRed
 Admin - 3 - MA-  2 iGreen - 0 iOrange - 0 iRed

Hur skall jag göra?

Permalänk: https://www.webforum.nu/p/172501

## #2 — Bjuris, 2008-07-01T08:10Z

never mind.

löste felet.

```
ALTER PROCEDURE tuser887.GetSavedBaseByStudentID @StudentID uniqueidentifier
AS

	Select Base.BaseName, Topic.TopicName, CreatedBy,
	sum(case when Answer = 0 then 1 else 0 end) as iGreen,
	sum(case when Answer = 1 then 1 else 0 end) as iOrange,
	sum(case when Answer = 2 then 1 else 0 end) as iRed,
	(SELECT  COUNT(*) FROM MyPlan_Goal i WHERE  i.BaseId = Base.BaseId and i.TopicId = Topic.TopicID) as totalQuestions
	from MyPlan_Answers AS Answers
	Left Outer JOIN MyPlan_Base AS Base
	ON Base.BaseId = Answers.BaseId
	Left Outer JOIN MyPlan_Goal AS Goal
	ON Goal.GoalId = Answers.GoalId
	Left Outer JOIN MyPlan_Topic AS Topic
	ON Topic.TopicId = Goal.TopicId
	Where studentId = @StudentID
	Group BY CreatedBy, Base.BaseName, Topic.TopicName, Base.BaseId, Topic.TopicId
	Order by createdBy, Base.Basename, Topic.TopicName
	

RETURN
```

Permalänk: https://www.webforum.nu/p/2120914

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/172501-group-by-eller
