그래, 도움이 필요해. 나는 대개 SQL 쿼리에 꽤 능숙하지만 이것은 나에게 당황 스럽다. 그건 그렇고, 이것은 숙제가 아니라 Access 데이터베이스의 실제 상황이며 아래 요구 사항을 직접 작성했습니다.하나씩 두 개의 행이있는 복잡한 SQL 쿼리
다음은 내 테이블 레이아웃입니다. 그것이 중요한 경우 Access 2007에 있습니다. 나는 SQL을 사용하여 쿼리를 작성하고있다.
Id (primary key)
PersonID (foreign key)
EventDate
NumberOfCredits
SuperCredits (boolean)
사람들이 이동하는 이벤트가 있습니다. 하나의 이벤트에서 정상 크레디트 또는 슈퍼 크레디트 또는 둘 다를 얻을 수 있습니다. SuperCredits 열은 행에서 이벤트에서 얻은 수퍼 크레디트 수를 나타내는 경우 true이고, 정상 크레디트를 나타내는 경우 false입니다.
이있는 사람 (174 개)에 참석하는 이벤트이며, 그들이 행사에서 3 일반 학점과 1 슈퍼 학점을 취득한다면, 예를 들어, 다음 두 행이 테이블에 추가 될 것이다 :
ID PersonID EventDate NumberOfCredits SuperCredits
1 174 1/1/2010 3 false
2 174 1/1/2010 1 true
ID PersonID EventDate NumberOfCredits SuperCredits
1 174 1/1/2010 1 false
2 174 1/1/2010 2 false
3 174 1/1/2010 1 true
지금 우리가를 인쇄 할 : 사람이 행사에서 두 개의 일을 할 수 있었다, 그래서 하나 개의 이벤트에 대한 두 개 이상의 열이있을 수 있습니다, 그것은 다음과 같을 수 있다는 것도 가능하다 보고서. 보고서의 열은 다음과 같습니다.
PersonID
LastEventDate
NumberOfNormalCredits
NumberOfSuperCredits
보고서에는 1 인당 1 행이 있습니다. 행에는 그 사람이 참석 한 최신 이벤트와 해당 이벤트에서 그 사람이 얻은 정상 및 슈퍼 크레디트가 표시됩니다.
데이터 및 GROUP BY 및 SUM() 및 기타 등등을 선택하는 SQL 쿼리를 작성하거나 작성하는 데 도움을 청합니다. 아니면 가능하지 않은 경우 이것이 가능하면 데이터를 구성하는 방법에 대해 알려주십시오.
이 내용은 매우 혼란 스럽습니다. 퍼즐을 풀 시간이 없다면 이해합니다. 가능한 한 간단하게하려고했지만 명확한 설명이 필요하면 질문을하십시오. 나는 그것을 알아 내려고 노력할 것이다. 그러나 나는 그것에 힘든 시간을 보내고있다, 이것은 나의 경험을 넘어서 그룹화하고있다. ...
정말 고마워요, 나는 그것을 알아 내지 못했지만 완벽하게 작동했습니다! 내가 바꿀 필요가있는 것은 Access에 case 문이 없으며 대신 switch (condition, value)를 사용한다는 것입니다. 나는 당신에게 여분의 평판을 줄 수있는 방법이 있었으면 좋겠다 !! – Ricket
CASE는 Access/Jet/ACE SQL에서 지원되지 않으므로이 대답은 작동하지 않습니다. 질문에 포함 된 데이터베이스 엔진에 대해 테스트하지 않은 SQL 언어로 질문에 대답하지 마십시오.-1 –
부울 테스트 일 경우 CASE를 iif()로 바꿀 수도 있습니다. –