mysql_union all 縱向合併建表_20170123

年前事情比較多,博客不能天天更新了。sql

一、union all 縱向建表和left join 橫向建表的數據結構區別 先貼代碼 後面再補充 數據結構

(#銷售確認額
	SELECT '05收貨銷售額' AS 標識,城市,餐館ID,銷售員,訂單號 AS 訂單ID,訂單日期 AS 訂單時間,SKUID,NULL AS 相應ID,NULL AS 相應名稱,類型,單位,銷量 AS 數量,'A收貨確認額' AS 類型1,成本額 AS 相應成本,銷售額 AS 金額,毛利額 AS 毛利,應收日 AS 收貨時間
	FROM `a005_account`
	WHERE 銷售額<>0 AND 訂單日期>='2017-01-01' AND 訂單日期<CURRENT_DATE
)
UNION ALL
(#銷售成本額
	SELECT '05收貨成本額' AS 標識,城市,餐館ID,銷售員,訂單號 AS 訂單ID,訂單日期 AS 訂單時間,SKUID,NULL AS 相應ID,NULL AS 相應名稱,類型,單位,銷量 AS 數量,'B收貨成本額' AS 類型1,成本額 AS 相應成本,0-成本額 AS 金額,0 AS 毛利,應收日 AS 收貨時間
	FROM `a005_account`
	WHERE 銷售額<>0 AND 訂單日期>='2017-01-01' AND 訂單日期<CURRENT_DATE
)
UNION ALL
(#贈品額
	SELECT '05收貨贈品' AS 標識,城市,餐館ID,銷售員,訂單號 AS 訂單ID,訂單日期 AS 訂單時間,SKUID,NULL AS 相應ID,NULL AS 相應名稱,類型,單位,銷量 AS 數量,'C贈品成本' AS 類型1,成本額 AS 相應成本,0-成本額 AS 金額,0-成本額 AS 毛利,應收日 AS 收貨時間
	FROM `a005_account`
	WHERE 銷售額=0 AND 訂單日期>='2017-01-01' AND 訂單日期<CURRENT_DATE
)
UNION ALL
(#優惠券
	SELECT '16優惠券' AS 標識,c1.城市,c1.餐館ID,c2.銷售員,c1.訂單號 AS 訂單ID,c1.下單時間 AS 訂單時間,NULL AS SKUID,c1.優惠券ID AS 相應ID,c1.優惠券名稱 AS 相應名稱,'贈券' AS 類型,'張' AS 單位,1 AS 數量,'D優惠券成本' AS 類型1,c1.優惠券金額 AS 相應成本,0-c1.優惠券金額 AS 金額,0-c1.優惠券金額 AS 毛利,c1.收貨時間
	FROM `a016_order_customercoupon_xref` AS c1
	LEFT JOIN `a003_order` AS c2 ON c1.訂單號=c2.訂單ID
	WHERE  c1.下單時間>='2017-01-01' AND c1.下單時間<CURRENT_DATE	
)
UNION ALL
(#滿減券
	SELECT '36滿減' AS 標識,d1.城市,d1.餐館ID,d2.銷售員,d1.訂單ID,d1.下單時間 AS 訂單時間,NULL AS SKUID,d1.活動ID AS 相應ID,d1.活動描述 AS 相應名稱,'滿減' AS 類型,'張' AS 單位,1 AS 數量,'E滿減券成本' AS 類型1,d1.滿減金額 AS 相應成本,0-d1.滿減金額 AS 金額,0-d1.滿減金額 AS 毛利,d1.收貨時間
	FROM `a036_order_promotion_xref` AS d1
	LEFT JOIN `a003_order` AS d2 ON d1.訂單ID=d2.訂單ID
	WHERE d1.下單時間>='2017-01-01' AND d1.下單時間<CURRENT_DATE
)

UNION ALL 
(#運費成本
	SELECT '12運費' AS 標識,d1.城市,d1.餐館ID,d1.銷售員,d1.訂單ID ,d1.訂單日期 AS 訂單時間,NULL AS SKUID,d1.訂單包id AS 相應ID,線路 AS 相應名稱,'運費' AS 類型,'件' AS 單位,件數 AS 數量,'F運費成本' AS 類型1,ROUND(d1.費用*d1.金額/d3.金額,4) AS 相應成本,ROUND(0-d1.費用*d1.金額/d3.金額,4) AS 金額,ROUND(0-d1.費用*d1.金額/d3.金額,4) AS 毛利,d2.應收日 AS 收貨時間
	FROM a012_cgwy_order_group2 AS d1
	LEFT JOIN `a005_account` AS d2 ON d1.訂單ID=d2.訂單號
	LEFT JOIN (
		SELECT 訂單包ID,SUM(金額) AS 金額
		FROM `a012_cgwy_order_group2` AS d1
		GROUP BY 訂單包ID
	) AS d3 ON d1.訂單包ID=d3.訂單包ID
	WHERE d1.訂單日期>='2017-01-01' AND d1.訂單日期<CURRENT_DATE
	GROUP BY d1.訂單ID
)
相關文章
相關標籤/搜索