1
mysql> select * from phppos_sales_items_taxes;
+---------+---------+------+-------+---------+------------+
| sale_id | item_id | line | name | percent | cumulative |
+---------+---------+------+-------+---------+------------+
| 1 | 1 | 1 | Tax 1 | 10.00 | 0 |
| 1 | 1 | 1 | Tax 2 | 10.00 | 1 |
| 3 | 1 | 1 | Tax 1 | 10.00 | 0 |
| 3 | 1 | 1 | Tax 2 | 10.00 | 0 |
| 4 | 1 | 1 | Tax 1 | 8.00 | 0 |
| 4 | 1 | 1 | Tax 2 | 10.00 | 1 |
+---------+---------+------+-------+---------+------------+
mysql> select * from phppos_sales_items;
+---------+---------+-------------+--------------+------+--------------------+-----------------+-----------------+------------------+
| sale_id | item_id | description | serialnumber | line | quantity_purchased | item_cost_price | item_unit_price | discount_percent |
+---------+---------+-------------+--------------+------+--------------------+-----------------+-----------------+------------------+
| 1 | 1 | | | 1 | 1.00 | 8.00 | 10.00 | 0 |
| 3 | 1 | | | 1 | 1.00 | 8.00 | 10.00 | 0 |
| 4 | 1 | | | 1 | 3.00 | 8.00 | 10.00 | 0 |
| 5 | 2 | | | 1 | 1.00 | 10.00 | 12.00 | 0 |
+---------+---------+-------------+--------------+------+--------------------+-----------------+-----------------+------------------+
4 rows in set (0.00 sec)
各パーセント(10.00,8.00など)ごとに、1つのクエリで合計税を決定する必要があります。税金が累積= 1である場合、税額は(小計+他の売り上げ税)* tax_percent/100によって決定されます。それ以外の場合は標準税計算式です。1つのクエリの税金(累積または標準税)
SELECT percent,
SUM(subtotal) AS subtotal,
SUM(total) AS total,
SUM(tax) AS tax
FROM (SELECT name,
Concat(percent, '%')
AS
PERCENT,
(item_unit_price * quantity_purchased -
item_unit_price * quantity_purchased *
discount_percent/100) AS subtotal,
IF (cumulative = 1, Round((item_unit_price * quantity_purchased
-
item_unit_price * quantity_purchased
*
discount_percent/100 +
--NEED TO DO A SUBQUERY HERE TO GET SALES TAX FOR FOR SALE_ID, ITEM_ID, LINE
) * (
percent/100), 2)
, Round
((
item_unit_price * quantity_purchased -
item_unit_price * quantity_purchased *
discount_percent
/100) * (1 + (percent/100)), 2))
AS
total,
Round((item_unit_price * quantity_purchased -
item_unit_price * quantity_purchased *
discount_percent/100) *
(percent/100), 2)
AS tax
FROM phppos_sales_items_taxes
JOIN phppos_sales_items
ON phppos_sales_items.sale_id =
phppos_sales_items_taxes.sale_id
AND phppos_sales_items.item_id =
phppos_sales_items_taxes.item_id
AND phppos_sales_items.line = phppos_sales_items_taxes.line
JOIN phppos_sales
ON phppos_sales_items_taxes.sale_id = phppos_sales.sale_id
WHERE phppos_sales.deleted = 0
AND DATE(sale_time) BETWEEN '2011-07-28' AND '2011-07-28') AS
temp_taxes
GROUP BY percent
これをより明確にするには、実行する計算を(手作業で)表示できますか? –