1

いくつかのツアーを一覧表示するテーブルがあり、各ツアーには、価格の異なる宿泊施設タイプのいくつかのカテゴリと、日付、締め切りなどの他の多くのフィールドがあります。ツアー、日付、締め切りだけでなく、各ツアーの最大 (および 0 でない場合は最小) の宿泊料金も選択して表示したいと考えています。私が見ている答えのいくつかを理解していないかもしれませんが、ほとんどはフィールド間ではなくフィールド内の最大値を探しているようです。最大値を見つける方法がわかったら、最小値を見つけることは同じ基本的な手順になると思います。

サンプルデータを含む簡略化されたテーブル構造は次のとおりです。

id   tourID    RmA    RmB   RmC   RmD ...other fields...
1      mb      600    450   550   300
2      kr      900      0   600   450
3      ww      500    650   550   600
4      wf      750    300   400   500

現在のディスプレイに追加したいのは次のとおりです。

Tour     Rates
 mb    300 - 600 
 kr    450 - 900
 WW    500 - 650
 wf    300 - 750

よくある質問を繰り返している場合は申し訳ありませんが、適切な回答を見つける方法で質問をグーグルで調べていない可能性があります.

4

2 に答える 2

0
SELECT Tour,GROUP_CONCAT(LEAST(RmA,RmB,RmC,RmD),GREATEST(RmA,RmB,RmC,RmD) SEPARATOR'-') as Rates FROM table

最小値と最大値を使用して、4 つの列すべてから最大値とそれぞれの最小値を取得し、それらを group_concat で加算します。

    SELECT Tour,GROUP_CONCAT(LEAST(
COALESCE(NULLIF(RmA,0),NULLIF(RmB,0),NULLIF(RmC,0),NULLIF(RmD,0)),
COALESCE(NULLIF(RmB,0),NULLIF(RmC,0),NULLIF(RmD,0),NULLIF(RmA,0)),
COALESCE(NULLIF(RmC,0),NULLIF(RmD,0),NULLIF(RmA,0),NULLIF(RmB,0)),
COALESCE(NULLIF(RmD,0),NULLIF(RmA,0),NULLIF(RmB,0),NULLIF(RmC,0)))
    ,GREATEST(RmA,RmB,RmC,RmD) SEPARATOR'-') as Rates FROM table
于 2013-10-01T21:16:44.173 に答える