2017-02-04 4 views
0
mysql> select * from Odetails; 
+------+-------+------+ 
| ONO | PNO | QTY | 
+------+-------+------+ 
| 1020 | 10506 | 1 | 
| 1020 | 10508 | 2 | 
| 1020 | 10509 | 3 | 
| 1020 | 10800 | 1 | 
| 1021 | 10506 | 7 | 
| 1021 | 10601 | 4 | 
| 1022 | 10601 | 1 | 
| 1022 | 10701 | 1 | 
| 1023 | 10506 | 2 | 
| 1023 | 10800 | 1 | 
| 1023 | 10900 | 1 | 
| 1024 | 10506 | 12 | 
| 1025 | 10601 | 2 | 
+------+-------+------+ 
13 rows in set (0.00 sec) 

各パーツにどれくらいのQTYがあるかをカウントする必要があります。部品には繰り返しがあります。たとえば、10506は4回表示され、私のテーブルに私は私が唯一、それは個々の行をカウントするために取得することができます各パーツの合計数を確認する方法

10506 22

のように見えるしたいと思うので、22のQTYを持っています。行数ではなく数量を求める方法を調べましたが、うまくいかないようです。

select PNO, (count(QTY)*count(PNO)) as TOTAL from Odetails group by PNO;

select PNO, count(*) as TOTAL from Odetails group by PNO;

をこれは私だけの行はいえ 登場した回数を与える:ここに は、私がしようとしているものです。

+0

'SELECT COUNT(PNO)を使用して... PNO'によってグループは常に '1'を返します。グループごとに「PNO」の値が1つだけ存在するので、グループごとに「PNO」というグループ内のすべてのエントリの値は同じです。 – axiac

答えて

1

シンプルです。 GROUP BYSUM

select pno, sum(qty) total 
from Odetails 
group by pno; 
+0

もちろん。私の馬鹿を見せてくれる。ありがとう。 – XXIV

関連する問題