0

次のようなクエリがあります。

SELECT DATE(Inspection_datetime) AS Date,Line,TRIM(Model) AS Model, Lot_no,
    COUNT(Serial_number) AS Qty
FROM inspection_report 
WHERE Line LIKE 'FA 06' AND MONTH(Inspection_datetime) = MONTH(CURRENT_DATE)
GROUP BY DATE(Inspection_datetime), TRIM(Model),Line,Lot_no

結果:

   Date     Line    Model      Lot_no  Qty                 
2012-10-19  FA 06   KD-X30EED   012A    1
2012-10-21  FA 06   KD-R446UD   024A    20
2012-10-21  FA 06   KD-R446UD   026A    25
2012-10-22  FA 06   KD-R430JD   052A    20
2012-10-22  FA 06   KD-R446UD   026A    15
2012-10-22  FA 06   KD-R540JD   025A    30
2012-10-23  FA 06   KD-R540JD   025A    10
2012-10-23  FA 06   KD-R540JD   027A    2

SUMこのデータまで数量にしたい場合の方法:

2012-10-22  FA 06   KD-R446UD   026A    15

私はこれを試しました:

SELECT SUM(X.Qty) AS QTY
FROM (
    SELECT DATE(Inspection_datetime) AS Date,Line,TRIM(Model) AS Model, Lot_no,     COUNT(Serial_number) AS Qty
    FROM inspection_report 
    WHERE Line LIKE 'FA 06' AND MONTH(Inspection_datetime) = MONTH(CURRENT_DATE)
    GROUP BY DATE(Inspection_datetime), TRIM(Model),Line,Lot_no) AS X
WHERE ?????????? 

次のような結果が欲しい:

|Qty |
+----+       
|81  |

編集

データ停止を選択する と、MySQL Query でこの問題を解決できない場合、PHP ではどうすればよいでしょうか2012-10-21 FA 06 KD-R446UD 026A 25 ?Qty =46

4

1 に答える 1

0

次のように、累計変数を使用できます。

SET @total = 0;
SELECT
    (@total := @total + X.qty) AS qty,
    X.Model
FROM (
    SELECT
        DATE(Inspection_datetime) AS Date,
        Line,
        TRIM(Model) AS Model,
        Lot_no,
        COUNT(Serial_number) AS Qty
    FROM inspection_report
    WHERE Line LIKE 'FA 06'
      AND MONTH(Inspection_datetime) = MONTH(CURRENT_DATE)
    GROUP BY 1, 3, 2, 4
) AS X
WHERE @total <= 81
于 2012-10-23T03:28:28.577 に答える