2016-08-09 9 views
-1

ごとにすべての色を印刷するここでは私のクエリです:は、テーブル名を元に戻し、コラム

MySQLの>

select DATE_FORMAT(STR_TO_DATE(items.date, '%Y-%m-%d'), '%M %d, %Y') date_new, unit, Descpt, p_cost, add_by, GROUP_CONCAT(color,' = ',qty) as COLOR, SUM(qty) as Total, SUM(qty*(p_cost)) as Ptotal from items where status IN ('1','2') Group By Descpt; 
+---------------+------+------------------------+--------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------+-----------+ 
| date_new  | unit | Descpt     | p_cost | add_by | COLOR                                            | Total | Ptotal | 
+---------------+------+------------------------+--------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------+-----------+ 
| June 16, 2016 | Pcs | #1688N - Big Crate New | 125.00 | Psd | BLUE - W = 200,BLUE - W/O = 400,RED - W/O = 300,RED - W = 500,GREEN - W = 300,GREEN - W/O = 200,YELLOW  - W = 400,YELLOW  - W/O = 582,BLACK - W = 255,BLACK - W/O = 330 | 3467 | 900927.75 | 

色の値が列として印刷されます。私はどのようにselect文でそれを達成できますか?添付の が必要な出力です。

enter image description here

答えて

0

これは完全な答えではありませんが、私はそれはあなたの道を示すと考えている...

ideiaはPHPレルムにCOLOR列を取得することであり、彼らはいくつかの正規表現を作りますあなたが望むようにデータを取得するために...その後、

$color = "BLUE - W = 200,BLUE - W/O = 400,RED - W/O = 300,RED - W = 500,GREEN - W = 300,GREEN - W/O = 200,YELLOW  - W = 400,YELLOW  - W/O = 582,BLACK - W = 255,BLACK - W/O = 330"; 

if(preg_match_all("/(\w+)\s*\-\s*(\S+)\s*=\s*(\d+)/",$color,$m)) { 
    print_r($m); 
} 
else { 
    print "Regexp failed!\n"; 
} 

配列$ mはあなたが行と列で区切られた必要なすべてのデータを持っています...テーブルを描画します。データは他の結果のために異なる場合、いくつかの数字がどこか抜けている場合、正規表現は、例えば、いくつかのadjustementsが必要になる場合があり

注...

+0

卿は、私はこれが解決策だと思います。私はPHPで初心者です。スクリプトを作成したり、スクリプト全体を手伝ったりできますか?私はちょうどそれを私のニーズに適応させるでしょう...事前に感謝しています – Psd

関連する問題