表格截图如下图片说明
SELECT
sku_p as aa,
COUNT(sku_p) as bb,
amount as cc,
SUM(amount) as dd
'' as leixing1,
'' as leixing2,
'' as leixing3,
FROM
tongji
WHERE amount_description='Principal'
GROUP BY sku_p
HAVING COUNT(sku_p) >= 1;
SELECT
sku_p as aa,
COUNT(sku_p) as bb,
amount as cc,
SUM(amount) as dd,
'' as leixing1,
'' as leixing2,
'' as leixing3,
FROM
tongji
WHERE amount_description='FBAPerUnitFulfillmentFee'
GROUP BY sku_p
HAVING COUNT(sku_p) >= 1;
SELECT
sku_p as aa,
COUNT(sku_p) as bb,
amount as cc,
SUM(amount) as dd,
'' as leixing1,
'' as leixing2,
'' as leixing3,
FROM
tongji
WHERE amount_description='Commission'
GROUP BY sku_p
HAVING COUNT(sku_p) >= 1;
已经解决了
SELECT
sku_p as SKU,
fulfillment_id AS 配送方式,
COUNT(sku_p) as 销售数量,
amount as 销售单价,
SUM(case amount_description when 'Principal' then amount else 0 end) 销售金额,
SUM(case amount_description when 'Commission' then amount else 0 end) 销售佣金,
SUM(case amount_description when 'FBAPerUnitFulfillmentFee' then amount else 0 end) 销售尾程物流费,
SUM(case amount_description when 'Principal' then amount else 0 end)+SUM(case amount_description when 'FBAPerUnitFulfillmentFee' then amount else 0 end)
+SUM(case amount_description when 'Commission' then amount else 0 end) 结算销售金额
FROM
tongji
GROUP BY sku_p
HAVING COUNT(sku_p) >= 1;
SELECT
sku_p as aa,
COUNT(sku_p) as bb,
amount as cc,
SUM(amount) as dd
'' as leixing1,
'' as leixing2,
'' as leixing3,
FROM
tongji
WHERE amount_description='Principal' OR amount_description='Principal' OR amount_description='Commission'
GROUP BY sku_p
HAVING COUNT(sku_p) >= 1;
SELECT
sku_p as aa,
COUNT(sku_p) as bb,
amount as cc,
SUM(amount) as dd,
'' as leixing1,
'' as leixing2,
'' as leixing3,
FROM
tongji
WHERE amount_description in ('Principal','Commission','FBAPerUnitFulfillmentFee') GROUP BY sku_p
HAVING COUNT(sku_p) >= 1;
楼上的也没问题
楼主的sql有点问题,你的select子句中已经按分组sum(amount) as dd了,为什么还要显示amount cc,你这样写在mysql是允许的,但是amount如果不是分组中唯一的,可能得到随机的值
回答你的问题:
1. 可以直接用union将3个sql连起来
sql1
union all
sql2
union all
sql3
2.
SELECT
sku_p as aa,
COUNT(sku_p) as bb,
amount as cc,
SUM(amount) as dd,
'' as leixing1,
'' as leixing2,
'' as leixing3
FROM
tongji
WHERE amount_description in ('Principal','Commission','FBAPerUnitFulfillmentFee') GROUP BY amount_description,sku_p
HAVING COUNT(sku_p) >= 1;