查看使用Where sum,group by

时间:2015-12-17 09:33:05

标签: mysql

我有两张桌子每日排序&付款。已根据收到的付款创建了包含daily_orders(商品价格+运费)最终订单价值的视图。加入是订单商品ID

现在面临挑战,要获得订单商品ID的亚马逊简易运费。因为它是在订单ID级别上收费的

如何在视图中实现以下计算?

每个订单商品ID的Amazon Easy Ship费用应为Amazon Easy Ship Charges&的总和。 Amazon Easy Ship对订单中存在的订单商品ID的订单ID /计数征税。 count在daily_orders表中可用

请查看附加视图的图像,应该计算红色数字,但它显示为0?

SQL daily_orders TABLE CREATE WITH SAMPLE DATA

CREATE TABLE IF NOT EXISTS `amazon1`.`daily_orders` 
(`order-id` varchar(19), `order-item-id` bigint(14), `sku` varchar(11), `quantity-purchased` int(1), `currency` varchar(3), `item-price` int(3), `shipping-price` int(3), `Order_Count` int(1), `Tally_SKU` varchar(13), `Bill_no` varchar(9)) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;# MySQL returned an empty result set (i.e. zero rows). 
INSERT INTO `amazon1`.`daily_orders` 
(`order-id`, `order-item-id`, `sku`, `quantity-purchased`, `currency`, `item-price`, `shipping-price`, `Order_Count`, `Tally_SKU`, `Bill_no`) 
VALUES ('171-5459791-9380334', 28373004618851, 'HP3001B-23', 1, 'INR', 150, 50, 2, 'HP30001-Black', 'A15-87693'),
('171-5459791-9380334', 62282678063643, 'HW30003-B13', 1, 'INR', 150, 50, 2, 'HW30003-Black', 'A15-87693'),
('403-6411573-8057942', 25067932242499, 'HP3001B-46', 3, 'INR', 450, 150, 1, 'HP30001-Black', 'A15-87694');

SQL支付表创建样本数据

CREATE TABLE IF NOT EXISTS `amazon1`.`PAYMENTS` 
 (`order-id` varchar(19), `order-item-id` bigint(14), `sku` varchar(11), `quantity-purchased` int(1), `currency` varchar(3), `item-price` int(3), `shipping-price` int(3), `Order_Count` int(1), `Tally_SKU` varchar(13), `Bill_no` varchar(9))
 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;# MySQL returned an empty result set (i.e. zero rows). INSERT INTO `amazon1`.`payments` (`order-id`, `order-item-id`, `sku`, `quantity-purchased`, `currency`, `item-price`, `shipping-price`, `Order_Count`, `Tally_SKU`, `Bill_no`) 
 VALUES ('171-5459791-9380334', 28373004618851, 'HP3001B-23', 1, 'INR', 150, 50, 2, 'HP30001-Black', 'A15-87693'), 
 ('171-5459791-9380334', 62282678063643, 'HW30003-B13', 1, 'INR', 150, 50, 2, 'HW30003-Black', 'A15-87693'), 
 ('403-6411573-8057942', 25067932242499, 'HP3001B-46', 3, 'INR', 450, 150, 1, 'HP30001-Black', 'A15-87694');

SQL视图

 CREATE or replace VIEW `recon` AS select 
`daily_orders`.`order-item-id` AS `order-item-id`,
`daily_orders`.`quantity-purchased` AS `quantity-purchased`,
`payments`.`order-item-code` AS `order-item-code`,

 SUM(CASE WHEN `payments`.`amount-description` = "Amazon Easy Ship Charges" or `payments`.`amount-description`="Amazon Easy Ship Charges Tax" THEN amount ELSE 0 END) AS `easy_charges`,

(`daily_orders`.`item-price` + `daily_orders`.`shipping-price`) AS `final_value`,
sum(`payments`.`amount`)  AS `final_rcvd`,`daily_orders`.`Tally_SKU` as `tally_sku`
from (`daily_orders` join `payments` on((`payments`.`order-item-code` = `daily_orders`.`order-item-id`))) 


group by `payments`.`order-item-code`,`daily_orders`.`order-item-id`,`daily_orders`.`quantity-purchased`

图片:

payments TABLE

daiy_order table and view required

0 个答案:

没有答案