1
私は、次の表があります。 資産 - 私たちはお客様のために監視する事を Trouble_tickets - トラブルチケットのインスタンス 部品 - トラブルチケットを固定するために使用することができ、すべての部品 trouble_ticket_parts - ticket_id、part_id、およびqtyが使用されているブリッジテーブル。チケットは多くのパーツを使用できるので、多くのpart_idを持つことができます。次のようにSUM
私のクエリは次のとおりです。チケットは1部Xと、それは私がパートxにのみ興味が2の数量が表示されますyの1部で閉じた場合
select a.name, tt.id, sum(if(trouble_ticket_parts.id = 44, parts.qty,0)) as `qty`
from trouble_tickets tt, trouble_ticket_parts ttp, parts p
where tt.id = ttp.ticket_id
and ttp.parts_id = p.id
and a.id = tt.asset_id
group by a.name asc;
私の問題があります。ですから問題は、トラブルチケットの在庫全体に渡って部品xの数量をどのように置き換えるかです。
あなたの最初のクエリは、私がして、グループに一部のIDを追加することを除いてやっているものに同じです。だから私の結果は改善されません。私はこれを理解していません: "とp.id =" 2番目のクエリの一部ですが、もう少し説明できますか? –
CodeMonkey
part-idをgroup by文に追加すると、すべての部分ではなく、分割された各部分の合計が出力されます.1つの部分xと1つの部分yで、2行、部分xと1部分、部分yと1個。 2番目の問い合わせは、xのpart-idに ''の代わりにx:の部分の数字だけを入れて、x(1 ) –
私はあなたが2番目のクエリで言及したことをやっている別のバージョンのクエリを持っています。私はまだ同じ結果を得る。 ticket_idはブリッジテーブルに2回あるので、両方をカウントしています。 – CodeMonkey