0

質問の文言についてお詫び申し上げます。これを明確にする方法がよくわかりませんでした。

次のMySQLクエリがあります:

select mn.meter_name, m.meter_number, m.meter_location, r.rates_meter_rate, r.rates_meter_PPD, m.meter_ID, mt.metertracking_periodend, mt.metertracking_read, mt.metertracking_readend FROM db_meters m, db_meters_name mn, db_rates_meter r, db_meters_tracking mt WHERE m.ICP_ID = '227' AND m.meter_name_ID = mn.meter_name_ID AND r.meter_ID = m.meter_ID AND (r.rates_meter_start <= '2013-08-31' AND r.rates_meter_end >= '2013-08-31') AND mt.meter_ID = m.meter_ID ORDER BY ABS( DATEDIFF( metertracking_periodend, NOW() ) ) 

次に、次を返します。

**meter_name meter_number   meter_location   rates_meter_rate rates_meter_PPD meter_ID metertracking_periodend metertracking_read metertracking_readend**
 Anytime      9011656:1     in front office       0.15560          10.00         15            2013-07-31              685               69665
 Anytime      9011656:2     in front office       0.09000          10.00         16            2013-07-31              293               1022
 Anytime      9011656:1     in front office       0.15560          10.00         15            2013-06-30              589               68980

各メーターが 1 回だけ返されるように結果を制限したいので、この場合は meter(ID) 15 & 16

誰かが助けてくれることを願っています。事前に感謝します。

4

2 に答える 2

0

Group byあなたの声明で使用してください:

select mn.meter_name, m.meter_number, m.meter_location, r.rates_meter_rate, r.rates_meter_PPD, m.meter_ID, mt.metertracking_periodend, mt.metertracking_read, mt.metertracking_readend FROM db_meters m, db_meters_name mn, db_rates_meter r, db_meters_tracking mt WHERE m.ICP_ID = '227' AND m.meter_name_ID = mn.meter_name_ID AND r.meter_ID = m.meter_ID AND (r.rates_meter_start <= '2013-08-31' AND r.rates_meter_end >= '2013-08-31') AND mt.meter_ID = m.meter_ID group by meter_ID ORDER BY ABS( DATEDIFF( metertracking_periodend, NOW() ) ) 
于 2013-08-29T23:33:32.807 に答える