2016-08-30 5 views
0

第1テーブル(左)を第2テーブル(右)に変換するクエリを作成できますか?私は商品コードを購入注文に統合する必要があります。テーブルを統合するMySQLクエリ

PO表:

enter image description here

+0

これまでに試したことを示すことはできますか? –

+0

いくつかのレコードでテーブルをダンプすることができますか?それから私はあなたに完全なクエリを与えることができます! –

+0

@MohamedNizarここで私のダンプクエリです。 https://www.dropbox.com/s/9wbepkmm3s5hwpp/PO%20Table.sql?dl=0 –

答えて

0

ここでは、ここで最高のものになるウィンドウ関数O不足している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を使用する場合、この問題はありません。

関連する問題