일부 비즈니스 응용 프로그램에서는 원시 데이터가 들어 와서 정규화 및 처리 한 다음보고 용도로 저장합니다. 예를 들어행을 열로 바꾸는 쿼리
, 원시 데이터 :
Transaction (transaction ID, employee 1 ID, employee 2 ID, employee 3 ID)
요구 사항보고에
TransactionEmployee (transaction ID, employee ID)
온다
Transaction(transaction ID)
으로 정규화, 직원은 한 행에 표시해야 - 예 : TransactionReport(transaction ID, some details, employee 1 ID, employee 2 ID, employee 3 ID)
내 솔루션은 응용 프로그램 프로그래밍 언어를 사용하여 TransactionEmployee를 반복하고 INSERT 문을 작성하여보고 데이터를 다른 테이블 (3 개의 직원 ID가있는 각 트랜잭션)에 넣는 것입니다.
하지만 SQL에서 더 편하게 느낄 것입니다.
SQL을 통해 실현할 수 있습니까?
Google 검색 문자열은 "MySQL의 피벗 쿼리"를 참조하십시오. 그건 그렇고, 거래가 3 명 이상의 직원을 가질 수 있습니까? –
@DanBracuk 감사합니다. 거래에는 3 명 이상의 관련 직원이 없습니다. 피벗 쿼리에 대해 들었지만 'select limit 1'을 선택하고 'select limit 1 skip 1'을 선택한 다음 'select limit 1 skip 2'을 수행하는 것이 이상합니다. 더 나은 옵션이 있는지 궁금하십니까? –