0

毎日の価格をユーザーに表示するためのアパート カレンダー テーブルがあります。このテーブルでは、一部のアパートメントには賃貸する部屋 (id_room) が含まれています。

テーブルの列/レコードの例:

id_apart | id_room | date       | price | promo_price
1        |    1    | 03-03-2013 | 20.00 | 0
1        |    1    | 04-03-2013 | 20.00 | 0
1        |    2    | 03-03-2013 | 50.00 | 45.00
1        |    2    | 04-03-2013 | 50.00 | 45.00

結果として、'price' と 'promo_price' を 2 つの日付間のアパート/部屋で見つかった最低価格の合計 SUM と連結した文字列を取得したいと考えています。

このクエリは、アパートのすべての部屋の価格を合計していますが、最も安い部屋の価格のみを合計するために、このクエリで MIN を使用する方法がわかりません。

select 
    concat(sum(if(promo_price>0,promo_price,price)), 
    "---",
    sum(price)) 
from 
    apart 
where 
    id_apart=215 
    and date>= "2013-03-03" 
    and date<"2013-03-05"

このクエリの結果: 90---140

凡例: 最初の文字列番号は「promo_price」の合計です。「価格」の 2 番目の合計

4

4 に答える 4

0

この答えはあなたが探していますか?

select 
concat(sum(if(promo_price>0,promo_price,price)), 
"---",
sum(price)) from apart group by id_room 
having sum(price) + sum(promo_price) = 
(select min(sum(price) + sum(promo_price)) from apart where id_apart =1 
group by id_room);

出力:40 --- 40

于 2013-03-08T09:10:10.287 に答える
0

これを試してください

id_apart 
= 215 で、日付が "2013-03-03" から "2013- 03-05"
于 2013-03-07T12:59:59.403 に答える
0
select concat(promo_price, "--", price) from apart 
where id_apart=215 and date >= "2013-03-03" and date < "2013-03-05" 
and (promo_price + price)) = (select min(promo_price + price) from apart);
于 2013-03-07T12:52:13.183 に答える
0

私はこれがあなたが探しているものだと思います

   select if(promo_price = 0,concat(sum(price),"---", sum(price)) ,sum(price)) as pri
  from apart  
   where id_apart=1 and `date`>= "03-03-2013" and `date` < "05-03-2013"
   and promo_price = 0

出力。

   PRIS

40---40

上記の例からid_apart =1 を作成したことに注意してください。

于 2013-03-07T13:02:12.353 に答える