0

我需要有关如何使用 MySQL 创建装箱单的帮助。

假设我有 32 盒键盘准备发货,主纸箱可以包含 12 盒。

我只有 32 个盒子和 12 个体积。下面结果中的另一个值是由 sql 命令生成的。不是来自记录。

因此,这很容易计算出主纸箱的数量为 3 个主纸箱,其中一个作为非标准数量。如何对此进行查询?

因为我想成为这个结果:

+----------+---------------+-------------------+--------+------------+---------+
| Quantity | Standard_Qty  | Non_Standard_Qty  | Box_N  | Box_Total  | RowType |
+----------+---------------+-------------------+--------+------------+---------+
|       12 |             1 |                 0 |      1 |          3 | Detail  |
|       12 |             1 |                 0 |      2 |          3 | Detail  |
|        8 |             0 |                 1 |      3 |          3 | Detail  |
|       32 |             2 |                 1 |        |            | Summary |
+----------+---------------+-------------------+--------+------------+---------+

它看起来像我知道的两个查询,可能是我在这里教过的 FLOOR 命令的使用。如何做出这个结果?

提前致谢。斯蒂芬


谢谢凯,

但我想通过 SQL 命令生成它,而不是通过客户端编程。我像这样被夹在中间。无论如何,这不是一个完整的专栏,我的意图是在我的原始帖子中。

mysql> SELECT
    -> art_name,
    -> color_code,
    -> volume,
    -> SUM(quantity) AS total,
    -> FLOOR(SUM(quantity) / volume) as boxes_sq,
    -> (SUM(quantity) % volume) as box_nsq_contain
    -> FROM order_main
    -> WHERE order_main_id = "11"
+----------+------------+--------+-------+----------+-----------------+
| art_name | color_code | volume | total | boxes_sq | box_nsq_contain |
+----------+------------+--------+-------+----------+-----------------+
| KEYBOA   | CAR        |     12 |     5 |        0 |               5 | 
| KEYBOA   | CAR        |     12 |     9 |        0 |               9 | 
| KEYBOA   | CAR        |     12 |    15 |        1 |               3 | 
| KEYBOA   | CAR        |     12 |    20 |        1 |               8 | 
| KEYBOA   | CAR        |     12 |    12 |        1 |               0 | 
| KEYBOA   | CAR        |     12 |     6 |        0 |               6 | 
| KEYBOA   | CAR        |     12 |     3 |        0 |               3 | 
| KEYBOA   | CSM        |     12 |     5 |        0 |               5 | 
| KEYBOA   | CSM        |     12 |     9 |        0 |               9 | 
| KEYBOA   | CSM        |     12 |    17 |        1 |               5 | 
| KEYBOA   | CSM        |     12 |    21 |        1 |               9 | 
| KEYBOA   | CSM        |     12 |    14 |        1 |               2 | 
| KEYBOA   | CSM        |     12 |     6 |        0 |               6 | 
| KEYBOA   | CSM        |     12 |     3 |        0 |               3 | 
+----------+------------+--------+-------+----------+-----------------+
4

1 回答 1

0

SQL 没有像检索和存储数据那样优化处理数据。因此,您得到的任何答案都会相对复杂(我认为)。更简单的是用您执行 SQL 查询的任何语言来处理它。伪代码可能类似于:

int num_keyboards = SELECT COUNT(*) FROM keyboards

int num_standard_packages = num_keyboards / 12
int keyboards_in_non_standard_package = num_keyboards % 12 (if 0 then discard)
于 2009-10-24T05:44:39.303 回答