나는 온라인으로 찾기가 놀랍도록 어려운 문제를 가지고 있습니다. 아마도 내가 부적절한 키워드로 검색하고 있으므로 귀하의 사이트가 내 연구를 통해 축복을 받았기 때문에 들러서 물어보고 싶었을 것입니다. 아래 시나리오를 참조하십시오 :SQL Server - 가능한 피벗 솔루션?
학생을 선택하고 합계 (미지 변수 : book1, book2, book3, book4 등)를 미스테리에서 선택하십시오.
본질적으로 제가하고 싶은 것은 합계 수와 일치하는 고유 한 학생 ID에 대한 모든 도서를 나열하는 것입니다. 누군가 올바른 방향, 좋은 읽기 또는 다른 방향으로 나를 가리킬 수 있었습니까? 올바른 방향으로 나아갈 수 있습니까? 나는 왼쪽 조인을 통해 (x1, x2, x3 부분을 수행하는 방법을 모르는 경우) 수행 한 다음 고유 한 학생 ID 번호 (중복 없음)로 두 링크를 연결하지만 모든 온라인 포인트가 피벗하지만 피벗이 나타나는 것으로 가정합니다. 모든 행을 단일 열 대신에 열에 넣는 것. SQL 서버 2005는 선택의 플랫폼입니다.
감사합니다.
죄송합니다
다음 쿼리는 테이블의 모든 중복 항목을 내 고유 ID (학생) 학생의 수를 생성합니다
select student, count(*) as Total
from mystudies
group by student order by total desc
내가 모르는 부분은 만드는 방법입니다 왼쪽 테이블 고유 ID에 가입 (boookid)
select mystudies1.student, mystudies1.total, mystudies2.bookid
from ( select student, count(*) as Total
from mystudies
group by student
) mystudies1
left join
( select student, bookid
from mystudies
) mystudies2
on mystudies1.student=mystudies2.student
order by mystudies1.total desc, mystudies1.student asc
물론 위의 행은 다음과 같은 결과를 얻을 수 :
Student Total BookID
000001 3 100001
000001 3 100002
000001 3 100003
000002 2 200001
000002 2 200002
000003 1 300001
그러나 실제로 원하는 것은 다음과 유사한은 다음과 같습니다
Student Total BookID
000001 3 100001, 100002, 100003
000002 2 200001, 200002
000003 1 300001
나는 왼쪽에서 수행되어야했다가되고 실제 수를 변경하지 않았다 그래서 가입 가정 학생에게 수행. 감사! SQL-서버에서
일부 샘플 데이터를 게시 한 다음 원하는 결과를 게시해야합니다. – Taryn
모든 필드를 연결하려는 것처럼 들립니다. 이것은 문자열 집계 연결 함수입니다. 그리고, 어떻게 이것을하는지는 데이터베이스에 따라 많이 다릅니다. 이 아이디어를 검색하여 원하는 것을 얻을 수 있습니다. –
귀하의 질문은 매우 설화입니다. 예제 데이터 세트, 지금까지 시도한 SQL 및 예상되는 결과를 사용하여 다시 말해보십시오. –