0

MySQLで出荷のパッキングリストを作成する方法についてサポートが必要です。

32箱のキーボードを出荷する準備ができているとしましょう。マスターカートンには12箱を入れることができます。

私は値32ボックスとボリューム12しか持っていません。以下の結果の他の値はsqlコマンドによって生成されます。記録から来ていません。

したがって、これにより、マスターカートンの数が3つのマスターカートンになり、1つが非標準の数量になることが簡単に計算されます。これに対してクエリを実行する方法は?

私はこの結果になりたいので:

+----------+---------------+-------------------+--------+------------+---------+
| 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 |
+----------+---------------+-------------------+--------+------------+---------+

私が知っている2つのクエリと、おそらくここで教えた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 に答える