1

迷惑なクエリの問題を解決しようとしています。

<cfset url.qty = "61000">
<cfset url.pages = "16">
<cfquery name="getCosts" datasource="#request.DSN#">
        SELECT ID, publication,pages,quantity, cover, cost, run_ons,run_backs, stock
        FROM calculator_data
        WHERE publication = <cfqueryparam cfsqltype="cf_sql_varchar" value="#url.publication#">
            <cfif url.qty IS NOT "">
            AND quantity = <cfqueryparam cfsqltype="cf_sql_integer" value="#url.qty#">
            </cfif>
            <cfif url.pages IS NOT "">
            AND pages = <cfqueryparam cfsqltype="cf_sql_integer" value="#url.pages#">
            </cfif>
        </cfquery>

私がやろうとしているのは、sayの引数を渡すことです

61000 に最も近い値を取得して、coldfusion を介して追加の計算を行うことができます。

データベースには 10,000 程度ごとに存在する範囲があるため、上記のコードを使用してクエリを実行すると、返されるのは空のクエリ オブジェクトだけです。

理想的には、61,000 とクエリした場合、60,000 を取得したいので、追加の計算のベースとして使用できます。

クエリ対象の値に最も近い数値を取得する方法についてのアイデアはありますか?

前もって感謝します

4

2 に答える 2

0

これを試して:

<cfset url.qty = "61000">
<cfset url.pages = "16">
<cfquery name="getCosts" datasource="#request.DSN#">
    SELECT ID, publication,pages,quantity, cover, cost, run_ons,run_backs, stock
    FROM calculator_data
    WHERE publication = <cfqueryparam cfsqltype="cf_sql_varchar" value="#url.publication#">
        <cfif url.qty IS NOT "">
        AND quantity < <cfqueryparam cfsqltype="cf_sql_integer" value="#url.qty#">
        </cfif>
        <cfif url.pages IS NOT "">
        AND pages = <cfqueryparam cfsqltype="cf_sql_integer" value="#url.pages#">
        </cfif>
    </cfquery>

次の行が変更されました。

AND quantity < <cfqueryparam cfsqltype="cf_sql_integer" value="#url.qty#">
于 2013-09-18T08:31:14.767 に答える