배경 : id, full_name, position_7, position_8, position_9 ... 표제가있는 테이블을 표시하려고합니다. 그 사람이 7 월과 8 월에 활성 직원 이었으면 2012_Jul 2012_Aug가 position_7 및 8에 한 줄에 표시됩니다. 내가 GROUP BY를 사용하지 않는다면 나는 출력을 얻지 만 2 라인을 얻는다. 이유는 BLMths 테이블에서 한 명 이상이 1 개월 이상 고용되어 여러 항목을 가지고 있기 때문입니다.사례가 GROUP과 함께 사용되는 경우
아래 쿼리는 GROUP BY를 사용하지 않으면 모든 사람 id, full_name 및 month를 성공적으로 가져옵니다. 그러나 문제는 GROUP BY를 사용하지 않으면 내 테이블에 각 사람마다 4 줄 (또는 그 이상)을 갖게된다는 것입니다. 내가 GROUP BY를 사용할 때, 나는 각 사람마다 1 라인의 원하는 출력을 가지지 만, 테이블에 필요한 데이터가 전부는 아니다.
내가 뭘 잘못하고 있는지 아는 사람이 있습니까? 아니면 누군가가 내 CASE 문 중 일부에서 데이터가 GROUP BY를 사용하여 누락 된 것처럼 보이는 이유를 알고 있습니까?
나는 이것에 대한 대답은 간단해야하지만 나는 그것을 해결할 수없는 것으로 알고있다. 어떤 도움을 주셔서 감사합니다. 미리 감사드립니다.
SELECT Blm.Ags, Blmths.Id, Ie.Full_Name, Blmths.Month,
CASE month
WHEN "2012-07-01" THEN 1
ELSE NULL
END AS Position_7,
CASE month
WHEN "2012-08-01" THEN Date_Format(Blmths.Month, '%Y_%b')
ELSE NULL
END AS Position_8,
CASE Blmths.Month
WHEN "2012-09-01" THEN Date_Format(Blmths.Month, '%Y_%b')
ELSE NULL
END AS Position_9,
CASE month
WHEN "2012-10-01" THEN Date_Format(Blmths.Month, '%Y_%b')
ELSE NULL
END AS Position_10,
CASE Blmths.Month
WHEN "2012-11-01" THEN Date_Format(Blmths.Month, '%Y_%b')
ELSE NULL
END AS Position_11,
CASE Blmths.Month
WHEN "2012-12-01" THEN Date_Format(Blmths.Month, '%Y_%b')
ELSE NULL
END AS Position_12,
CASE month
WHEN '2013-01-01' THEN Date_Format(Blmths.Month, '%Y_%b')
ELSE NULL
END AS Position_1,
CASE month
WHEN "2013-02-01" THEN Date_Format(Blmths.Month, '%Y_%b')
ELSE NULL
END AS Position_2,
CASE month
WHEN "2012-03-01" THEN Date_Format(Blmths.Month, '%Y_%b')
ELSE NULL
END AS Position_3,
CASE Blmths.Month
WHEN "2013-04-01" THEN Date_Format(Blmths.Month, '%Y_%b')
ELSE NULL
END AS Position_4,
CASE Blmths.Month
WHEN "2013-05-01" THEN Date_Format(Blmths.Month, '%Y_%b')
ELSE NULL
END AS Position_5,
CASE Blmths.Month
WHEN "2013-06-01" THEN Date_Format(Blmths.Month, '%Y_%b')
ELSE NULL
END AS Position_6
FROM Bogus_Leadership_Months AS Blmths, Injection_Employees AS Ie,
Bogus_Leadership_Members AS Blm
WHERE Blmths.Id = Blm.Id
AND Ie.Ags = Blm.Ags
AND Ie.Centre_Id = '666'
GROUP BY Blm.Ags
무엇을하려고합니까? –
다음과 같은 테이블을 표시하려고합니다. –
@KahlilN : 이러한 정보를 주석에 넣지 말고 대신 질문을 편집하십시오. 기존 답변을 검토하고 제대로 작동하는지 피드백을 보내주십시오. –