SELECT
GROUP_CONCAT(DISTINCT CONCAT( 'GROUP_CONCAT(distinct IF(pp.ParamName =\'', g.ParamName, '\', pp.ParamValue,null )) as \'', ParamName, '\'' )) INTO @dynamic_sql_part
FROM
ParamValue AS g
LEFT JOIN trade.TG_Goods AS goods ON g.GoodsId = goods.id
WHERE
goods.StockDirId = 1240781591605960704;
SET @dynamic_sql = CONCAT( 'SELECT
pr.`projectName` AS \'征集项目名称\',
pro.`stockDirName` AS \'采购目录\',
pro.packageNo AS \'包号\',
pro.`goodsRepName` AS \'商品名称\',
pro.goodsRepBrand AS \'品牌\',
pro.model AS \'型号\',
pro.providerOrgName AS \'入围供应商名称\',
pro.quotePrice AS \'入围价格\', ',
@dynamic_sql_part,
' ,SUM(go.GoodsNum) AS \'成交量\',
MIN(go.Price) AS \'成交最低价\',
MAX(go.Price) AS \'成交最高价\',
SUM(go.TotalPrice)/NULLIF(SUM(go.GoodsNum), 0) AS \'成交均价\',
SUM(go.TotalPrice) AS \'成交总金额\',
pro.`goodsRepId`
FROM
trade.TF_Orders o
INNER JOIN CGoods go ON go.CommerceId=o.Id
INNER JOIN goods pro ON pro.goodsRepId=go.GoodsId AND pro.repState=1 AND pro.operState=4 AND pro.editState=2
INNER JOIN ParamValue pp ON pp.GoodsId=pro.goodsRepId
INNER JOIN `project` pr ON pr.`id`=o.`VarId`
WHERE o.State=6 AND pro.stockDirId=1242514875780173824
GROUP BY pro.goodsRepId;' );
SELECT
@dynamic_sql;
PREPARE stmt
FROM
@dynamic_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;