2016-08-30 2 views
0

첫 번째 테이블 (왼쪽)을 두 번째 테이블 (오른쪽)로 변환하는 쿼리를 만들 수 있습니까? 구매 주문서에 제품 코드를 통합해야합니다.테이블을 통합하는 MySQL 쿼리

PO 테이블 : 여기

enter image description here

+0

지금까지 시도한 것을 보여줄 수 있습니까? –

+0

몇 가지 기록으로 테이블을 덤프 할 수 있습니까? 그렇다면 완전한 쿼리를 제공 할 수 있습니다! –

+0

@MohamedNizar 여기 내 덤프 쿼리입니다. https://www.dropbox.com/s/9wbepkmm3s5hwpp/PO%20Table.sql?dl=0 –

답변

0

여기에 가장 좋은 일이 될 것 윈도우 함수 오 부족이 MySQL의에서 쿼리

SET @sql = NULL; 
SELECT 
GROUP_CONCAT(DISTINCT 
CONCAT(
    'count(case when PONumber = ''', 
    PONumber, 
    ''' then 1 end) AS ', 
    replace(PONumber, ' ', '') 
) 
) INTO @sql 
from PO; 

SET @sql = CONCAT('SELECT pt.ProductCode, ', @sql, ' from PO pt 
group by ProductCode'); 

PREPARE stmt FROM @sql; 
EXECUTE stmt; 
DEALLOCATE PREPARE stmt; 
+0

답변 해 주셔서 감사합니다. 그러나이 쿼리는 내가 필요한 결과를 얻지 못합니다. –

+0

나는 그것에 약간 변화를 기대한다. 당신이 예제 데이터를 줄 수 있다면 시간을 절약 할 수있다! –

0

입니다.

하지만 특정 문제로 인해 문제가 해결됩니다.

SELECT 
    product_code, 
    (SELECT count from your_table t2 
     Join t1 on t2.product_code = t1.product_code and t2.po_number = 'PO1') as PO1, 
    (SELECT count from your_table t3 
     Join t1 on t3.product_code = t1.product_code and t3.po_number = 'PO2') as PO2, 
    (SELECT count from your_table t4 
     Join t1 on t4.product_code = t1.product_code and t5.po_number = 'PO3') as PO3 
From your_table t1 

그냥 테이블 이름과 열 이름을 사용하십시오. 불행히도 po4를 추가하면 쿼리에 추가해야합니다. 예를 들어 Postgres를 사용한다면이 문제는 발생하지 않을 것입니다.