スキーマ: インナーは、重複排除の参加
問合せ:
SELECT avto.Marka,SUM(OtrabotanoMachine_hours) as 'work hours',SUM(sec.Hours) as Downtime,CONVERT(group_concat(concat(prostoy.Prichina,'=',sec.Hours) separator ';') USING 'utf8') as 'downtime reasons',CONVERT(group_concat(concat(VipolnennayaRabota,'=',V_raboty) separator ';') USING 'utf8') as 'performed works'
FROM
jos_addRabotyAndProstoyMain main
INNER JOIN avto ON main.Marka=avto.ID_Avto
INNER JOIN (
SELECT id_fk, SUM(Hours) AS Hours, Prostoy
FROM jos_addRabotyAndProstoySecond
GROUP BY id_fk,Prostoy) sec ON sec.id_fk = main.id
INNER JOIN prostoy ON sec.Prostoy = prostoy.ID_Prosyoy
GROUP BY avto.Marka
間違った結果:
| Marka | work hours |downtime| downtime reasons | performed works|
|JCB-90QX | 44 | 7 |lack of materials=2; | work=51; |
| | | |machine malfunction=1; | work=51; |
| | | |Others=3; | work=51; |
| | | |unscheduled repairs=1 | work=51; |
列 "労働時間" と重複が含まれている "作品を実施し"。どのように重複を排除する?
私はこのような結果必要:
| Marka | work hours |downtime| downtime reasons | performed works|
|JCB-90QX | 11 | 7 |lack of materials=2; | work=51; |
| | | |machine malfunction=1; | |
| | | |Others=3; | |
| | | |unscheduled repairs=1 | |
重複はテーブル 'jos_addRabotyAndProstoyMain'に作成されますが、重複を排除する方法はわかりません。 – Vitaly
使用できるテストデータがありますか? create tableステートメントも必要です。あなたの質問にそれらを追加すると助けになるでしょうか? [SQLFiddle](http://sqlfiddle.com)に置くことはいいと思います。 –
追加してください。 – Vitaly