나는 스포츠 심판 게임 일정을 보여주는 일련의 데이터를 가지고있다. 거의 모든 경우에 2 명의 심판이 각 게임마다 함께 작업합니다.몇 개의 열을 제외하고 2 개의 데이터 행 압축하기
GroupName EventDate EvtTime SiteName SubSite Email FirstName LastName Phone1
==============================================================================================================================
Hoops Forever 8/10/2016 8:00 Kennedy High School Court #33 BMJ [email protected] Jeff Smith 8014445555
Hoops Forever 8/10/2016 8:00 Kennedy High School Court #33 BMJ [email protected] Kris Jones 8013331111
Hoops Forever 8/10/2016 9:20 Kennedy High School Court #33 BMJ [email protected] Jeff Smith 8014445555
Hoops Forever 8/10/2016 9:20 Kennedy High School Court #33 BMJ [email protected] Kris Jones 8013331111
Hoops Forever 8/10/2016 10:40 Kennedy High School Court #33 BMJ [email protected] Jeff Smith 8014445555
Hoops Forever 8/10/2016 10:40 Kennedy High School Court #33 BMJ [email protected] Kassy Hanks 8019997777
Hoops Forever 8/10/2016 12:00 Kennedy High School Court #33 BMJ [email protected] Michael Rogers 8010001111
Hoops Forever 8/10/2016 12:00 Kennedy High School Court #33 BMJ [email protected] Kris Jones 8013331111
Hoops Forever 8/10/2016 13:20 Kennedy High School Court #33 BMJ [email protected] Michael Rogers 8010001111
Hoops Forever 8/10/2016 13:20 Kennedy High School Court #33 BMJ [email protected] Kris Jones 8013331111
지금 상위 2 행을보고 2 행 사이의 모든 값이 동일한 것을 알 수 :
SELECT DISTINCT g.GroupName, date(s.EventDate) AS EventDate, DATE_FORMAT(s.EventDate,'%H:%i:%s') AS EventTime, l.SiteName, ss.SubSiteName, u.Email, u.FirstName, u.LastName, u.Phone1
FROM Schedule s
JOIN Groups g
ON s.GroupID = g.GroupID
LEFT OUTER JOIN Sites l
ON s.SiteID = l.SiteID
LEFT OUTER JOIN SubSites ss
ON l.SiteID = ss.SiteID
LEFT OUTER JOIN Users u
ON s.UserID = u.UserID
WHERE g.OrganizationID = 2
AND s.EventDate > DATE_ADD(NOW(), INTERVAL 0 HOUR)
AND (s.SubSiteID = 0 OR s.SubSiteID = ss.SubSiteID)
ORDER BY l.SiteName, ss.SubSiteName, s.EventDate, u.LastName
그리고 여기에 해당 쿼리에 의해 생성 된 기록의 일부는 다음과 같습니다 여기 내 쿼리입니다 마지막 4 열을 제외하고는 심판에만 국한된다.
GROUP BY GroupName, EventDate, EvtTime, SiteName, SubSite
을 그리고 그 중간이 나있어,하지만 난 각 그룹에서 2 심판 손실 : 그래서 내가하려고하는 것은이 추가되었다
GroupName EventDate EvtTime SiteName SubSite Email FirstName LastName Phone1
==============================================================================================================================
Hoops Forever 8/10/2016 8:00 Kennedy High School Court #33 BMJ [email protected] Jeff Smith 8014445555
Hoops Forever 8/10/2016 9:20 Kennedy High School Court #33 BMJ [email protected] Jeff Smith 8014445555
Hoops Forever 8/10/2016 10:40 Kennedy High School Court #33 BMJ [email protected] Jeff Smith 8014445555
Hoops Forever 8/10/2016 12:00 Kennedy High School Court #33 BMJ [email protected] Michael Rogers 8010001111
Hoops Forever 8/10/2016 13:20 Kennedy High School Court #33 BMJ [email protected] Michael Rogers 8010001111
그리고 속히를, 여기에 내가 정말 필요한 내용은 다음과 같습니다
GroupName EventDate EvtTime SiteName SubSite Email1 FN1 LN1 Phone1 EMail2 FN2 LN2 Phone2
=========================================================================================================================================================================
Hoops Forever 8/10/2016 8:00 Kennedy High School Court #33 BMJ [email protected] Jeff Smith 8014445555 [email protected] Kris Jones 8013331111
Hoops Forever 8/10/2016 9:20 Kennedy High School Court #33 BMJ [email protected] Jeff Smith 8014445555 [email protected] Kris Jones 8013331111
etc...........
공지 나의 원하는 결과 집합, 다른 4 개의 열 (REF 특정보다는 특정 게임)은 "압축"행에 추가된다. 논리적으로 말하면 : 1 개의 게임이 있지만 2 개의 심판이 있습니다. 그 1 게임에 대한 정보가 1 행에 있도록하고 싶습니다. 그리고 2 개의 refs에 대한 정보도 같은 행에 추가하고 끝에 추가해야합니다. 실제 DB에는 2 개의 행이 있지만, 나는 그것들을 결합하고 추가하고 싶다. 거기에 심판 정보가없는 경우에는, 그냥 nulls/공백을 원한다 - 아무것도 공상.
이렇게 SQL은 어떻게 구성되어 있습니까? 미리 감사드립니다. 이 같은 열에서 모두 심판을 저장하기 위해 허용되는 경우
MAX와 MIN이 가장 쉬운 접근 방법임이 입증되었습니다. 감사합니다 Nosyara. 내 SELECT 라인은 다음과 같습니다 : SELECT DISTINCT s.EventName, s.EventDate AS FullDate, date (s.EventDate) AS EventDate, DATE_FORMAT (s.EventDate, '% H : % i : % s') AS EventTime, DAYNAME (CONCAT (MAX (u.FirstName), '', MIN (u.LastName)) AS Ref1, CONCAT (MAX (s.EventDate)) AS 일 DayOfWeek,s.AcceptedDate, g.GroupName, l.SiteName, ss.SubSiteName, (u.FirstName), '', MAX (u.LastName)) AS Ref2' – HerrimanCoder