0

データベース内の特定のデータを加算および乗算するタイプの計算機を作成しようとしています。

round()ネストされた選択 (およびその他のカウント) 内でmysql 関数を正しく使用するのに問題があります。

私のコードの例を以下に示します。どんな助けでも大歓迎です。(コードは実際よりも複雑に見えます....)

これは、ネストされた各選択から「選択ラウンド」を削除すると機能します。ここでの私の目標はFloor、これらの各計算 (結果の数 x カウント) を取得することですが、各計算を切り上げます。

select 
    FLOOR
    (
        select round(   1 * 
                (
                    SELECT count(action) from table
                )
        )
    +
        select round(   .5 *    
                (
                    SELECT count(action) from table

                )
        )
    -
        select round(   .5 *
                (
                    SELECT count(action) from table

                )
        )
    -
        select round(   .1 *
                (
                    SELECT count(action) from table

                )
        )
    ) as total
from table
LIMIT 0,1
4

2 に答える 2

1

これはあなたが求めているものですか?すべてのテーブル名とフィールド名が同じであるため、何をしようとしているのかを判断するのは非常に困難です。ただし、すべてのフィールドが単一のテーブルからのものであると仮定すると、次のようになります。

select 
  floor(
        round(   1 * count(action))
    +   round(  .5 * count(action))
    -   round(  .5 * count(action))
    -   round(  .1 * count(action))) 
from table
LIMIT 0,1
于 2012-10-17T01:49:48.097 に答える
1

してみてください

select 
    FLOOR
    (
        round(   1 * 
                (
                    SELECT count(action) from table
                )
        )
    +
        round(   .5 *    
                (
                    SELECT count(action) from table

                )
        )
    -
        round(   .5 *
                (
                    SELECT count(action) from table

                )
        )
    -
        round(   .1 *
                (
                    SELECT count(action) from table

                )
        )
    ) as total
from table
LIMIT 0,1

構文エラーです。

于 2012-10-17T01:30:45.883 に答える