-1
作为从Ebay加载订单的过程的一部分,我们将导出的文件转储到表中,然后使用存储过程处理表。这对于单件订单(即使是大批量的一件商品)也很适用,但是它会在多个商品订单上出现不正确的小计。原因是因为查询,但我坚持试图找到一种方法来获取正确的数据而不排除事物。如何重写此查询以获取正确的小计
这里的一个单线项顺序的例子(表缩短以显示点):
Quantity | Sale Price | Shipping and Handling | Total
2 $10 $4.95 $24.95
,这里是一个多行一个
Quantity | Sale Price | Shipping and Handling | Total
5 $60 $14.95 $74.95
2 $10
2 $15
1 $10
下面是现有的查询:
SELECT @RecentUID, @MaxOrderNum,
CAST(REPLACE(`Sale Price`, '$', '') AS DECIMAL(20,5))* e.Quantity,
CAST(REPLACE(`Shipping and Handling`, '$', '') AS DECIMAL(20,5)),
CAST(REPLACE(`Sales Tax`, '$', '') AS DECIMAL(20,5)),
CAST(REPLACE(`Total Price`, '$', '') AS DECIMAL(20,5)),
STR_TO_DATE(`Paid on Date`, '%b-%d-%y'), DATE_ADD(NOW(), INTERVAL 2 HOUR),
'Process', 44, 'eBay Via PayPal', `Buyer Fullname`, `Buyer Address 1`,
`Buyer Address 2`, `Buyer City`, `Buyer State`, `Buyer Zip`
FROM ebay_orders e
WHERE e.`Sales Record Number` = @eBayOrderNumber
AND e.`Paid on Date` <> ''
AND e.imported = 0;
单行项目会发生什么情况,需要数量*销售价格才能获得小计价值,这是正确的。但是,对于多行项目,由于销售价格已经是其他行的总和,因此不需要数量倍增。
我不知道该怎么做。这是一个非常复杂的查询,我无法在需要添加额外逻辑的地方抓住多线案例。