sql >> データベース >  >> RDS >> Oracle

Oracle[手順]-Sum関数はWHERE句を無視します

    問題は、入力パラメータの名前が列と同じであるため、クエリが表示されたときに

    WHERE SCOTT.EMP.DEPTNO = deptno
    

    deptnoを解釈します SCOTT.EMP.DEPTNOとして 、deptnoのすべての値に当てはまることを意味します 。入力パラメータの名前を変更すると、クエリは期待どおりに機能します。

    NVLも使用する必要があります 個々のSUM 値はNULLではありません 、どちらかがNULLであるかのように それはそれらの合計をNULLにします 同様に、つまり

    select NVL(SUM(SAL), 0) INTO SALSUM FROM SCOTT.EMP WHERE SCOTT.EMP.DEPTNO = numerdept;
    select NVL(SUM(COMM), 0) INTO COMMSUM FROM SCOTT.EMP WHERE SCOTT.EMP.DEPTNO = numerdept;
    



    1. クエリ結果をBigQueryからPostgresにエクスポートする

    2. Pythonを使用したPostgreSQLデータベースでのINSERTの使用

    3. PythonとSQLiteの警告

    4. SQLServerで数値のみを返す方法