2016-10-07 3 views
3

カラムのエントリを数え、その横のカウントを表示するといいでしょう。 しかし、私はそれをどうやって行うことができるのか分かりません。カラムのエントリをカウントするMySQLとディスプレイのカウント

所望の出力:

arrangement_number  tray_no rl_type flag(count of occurrence) 
------------------  ------- ----  ---- 
2774818     381001 R  3 
2774818     381001 R  3 
2774818     381001 L  3 
2778470     405128 R  1 
2779702     265265 R  2 
2779702     265265 R  2 

私は現在@variablesを使用してクエリをしようとしているが、私はまだそれが権利を取得傾けます。 各行は一意であり、グループ化しないようにする必要があります。

更新:拡張表は、ソースコードに

注意を追加しました:私は現在5つのテーブルを結合しています今

実際のクエリ:

SELECT 
    log.arrangement_number, 
    header.tray_number, 
    detail.rl_type, 

    -- some more fields here 

FROM 
    log 
     INNER JOIN 
    header ON log.arrangement_number = header.rxarrangement_number 
     AND log.production_place_code = header.production_place_code 
     INNER JOIN 
    detail ON log.arrangement_number = detail.rxarrangement_number 
     AND log.production_place_code = detail.production_place_code 
     INNER JOIN 
    deliveryperiod ON log.arrangement_number = deliveryperiod.arrangement_number 
     AND log.production_place_code = deliveryperiod.production_place_code 
     AND detail.rl_type = deliveryperiod.rl_type 
     INNER JOIN 
    calc ON calc.arrangement_number = log.arrangement_number 
     AND calc.production_place_code = log.production_place_code 
     AND deliveryperiod.rl_type = calc.rl_type 
     AND detail.rl_type = calc.rl_type 
WHERE 
    header.status_code IN ('20' , '21') 
     AND log.process_code = '12' 
     AND deliveryperiod.process_code_current = '12' 
     AND deliveryperiod.sub_process_code_current IN ('100' , '105') 
     AND lot_number = '120131' 
ORDER BY log.lot_number , log.sequence_number , deliveryperiod.rl_type DESC 
+1

'SELECT tray_no、COUNT(*)ASフラグFROM ta 「GROUP BY tray_no'」と表示されます。 –

+0

@FelixPamittan注意:元のレコードをすべて保持したい場合は、おそらくサブクエリを使用する必要があります。 –

+0

私は 'GROUP BY'を使うことはできません。各行にフラグが必要です。私はそれをスリムにした。 – Hexxed

答えて

0

が...これを試してみてください

SELECT tray_no, COUNT(*) 'flag' 
FROM table1 
GROUP BY tray_no 
2
SELECT t1.tray_no, 
     t2.flag 
FROM yourTable 
INNER JOIN 
(
    SELECT tray_no, COUNT(*) AS flag 
    FROM yourTable 
    GROUP BY tray_no 
) t2 
    ON t1.tray_no = t2.tray_no 
関連する問題