1

次の3つのテーブルがあります。これはデータのほんの一部です。クエリを実行していないほとんどの行とその他の列は除外しました。完全な表を含めることが役立つ場合は、私に知らせてください。それらを投稿する方法を理解できます.

インフォコム

id    items_id  itemtype         value      
1735  21        Software         0.0000     
1736  22        Software         0.0000     
1739  21        Peripheral       151.2500   
1741  23        Peripheral       150.5000   
1742  24        Peripheral       0.0000     
1743  25        Peripheral       0.0000      

場所

id  name    
34  Anaheim
35  Kirkland  
36  Palm Springs  
37  Tacoma  

周辺機器

id  name                                                          locations_id  
11  Logitech USB Wheel Mouse                                      0             
12  Samsung Slate Dock                                            17            
21  USB Scan Gun with Stand                                       34            
23  USB Scan Gun with Stand                                       63            
24  USB Scan Gun with Stand                                       45            
26  USB Scan Gun with Stand                                       39

これらのテーブルに対して次のクエリを実行しています。

SELECT peripherals.name, infocoms.value, locations.name AS Branch
FROM peripherals
JOIN infocoms ON peripherals.id = infocoms.items_id
JOIN locations ON peripherals.locations_id = locations.id
WHERE (peripherals.name = 'USB Scan Gun with Stand'
AND peripherals.locations_id != '0')
GROUP BY peripherals.id ORDER BY locations.name ASC

正しい行数が返されますが、実際の金額 (151.25 と 150.50) ではなく、値がすべて 0.0000 として表示されます。

どんな助けや洞察も大歓迎です。ありがとう。

4

3 に答える 3

0

@Eugene Scrayは、GROUP BYが一部の値しか表示されない理由であることについて正しいです。列を「グループ化されていない」状態に保つには、それらの列を GROUPING 句に追加する必要があります。例えば:

GROUP BY peripherals.id, infocom.value
于 2013-07-12T23:35:31.593 に答える
0

私が追加したWHEREAND infocoms.itemtype = 'Peripheral'では、適切な値とともに正しい行数を返しました。

于 2013-07-22T16:26:50.063 に答える