-1

金額列で注文するチームのリストがあり、PHP がそれをページに投稿すると、各チームの金額に応じて各チームにラベル付けされたティア/カテゴリがあります。例:

SQL の結果:

Team | Amount
  A    550.00
  B    1200.00
  C    320.00
  D    800.00

PHP は次のようにレイアウトします。

B - Top tier (over $1,000)
D - Middle tier (over $500)
A - Middle tier (over $500)
C - Low tier (over $150)

今、私はページに表示されているチームをさらに多く持っています。私がする必要があるのは、それらがまだページの最高額から最低額の順に表示されていることです。実際には、SQL を層に出力し、それぞれでアルファベット順に並べ替える必要があります。ティア。したがって、たとえば (上記の小さな PHP 出力の例を使用)、チーム "D" と "A" は両方とも同じ層にありますが、"A" をアルファベット順に最初に表示する必要があります。

4

3 に答える 3

1
select teamname from (
    select teamname, 1 as ordern from teams where Amount>=1000
        union all
    select teamname, 2 from teams where Amount<1000 and Amount>=500
        union all
    select teamname, 3 from teams where Amount<500 and Amount>=150
        union all
    select teamname, 4 from teams where Amount<150
) as q
order by ordern DESC, teamname ASC
于 2013-10-11T19:37:51.193 に答える
1

最初に金額で、次にチームで注文する必要があります。

select TeamName,'Top tier (over $1,000)'
from table where amount > 1000
union all
select TeamName,'Middle tier (over $500)'
from table where amount between 500 and 1000
union all
select TeamName,'Low tier (over $150)'
from table where amount between 150 and 500
order by 2,1
于 2013-10-11T19:38:27.077 に答える
1

使用する:

SELECT CASE WHEN Amount > 1000 THEN 4
            WHEN Amount > 500 THEN 3
            WHEN Amount > 150 THEN 2
            ELSE 1
       END Tier,
       Team, Amount
FROM Table
ORDER BY Tier DESC, Team
于 2013-10-11T19:38:52.690 に答える