0
Msアクセスで特定のレポートを取得するためのクエリがありました。このクエリーは、データを読み取る機器の動作を再開し、半分の時間を意味する「1/2」または状況に応じた0を与え、ラインを合計する。Oracle SQLクエリの列を集計する方法は?
これでOracle BDで使用する必要があります。私は自分の名前を使用して、選択したcolunsを合計することはできませんいくつかの理由について
Inoperante + standby as parado,
:私は次の行を除いて、ほぼeveryting翻訳しました。 Oracleで特定の方法がありますか?
全体のクエリがあります:(ここでは素人が、笑笑っていない)
SELECT
TO_CHAR(e3timestamp,'DD/MM/YYYY') as Data,
SUM(
(CASE WHEN ARAUCARIA.[Tempo por Stroke_Quality]<50 THEN 0 ELSE
(CASE WHEN ARAUCARIA.Status=0 THEN 0 ELSE
(CASE WHEN ARAUCARIA.SB=1 THEN 0 ELSE
(CASE WHEN ARAUCARIA.VAZÃO=0 OR ARAUCARIA.VAZÃO=NULL THEN
(CASE WHEN ARAUCARIA.[Tempo por Stroke]>15 THEN 0 ELSE 1/2 END)
ELSE
(CASE WHEN ARAUCARIA.[Quantidade inejtada]<10 THEN 0 ELSE 1/2 END)
END)
END)
END)
END)
)
AS Operando,
SUM((CASE WHEN ARAUCARIA.[Tempo por Stroke_Quality]<50 THEN 1/2 ELSE 0 END)) AS TSP,
SUM(
(CASE WHEN ARAUCARIA.[Tempo por Stroke_Quality]>50 THEN
(CASE WHEN ARAUCARIA.Status=0 THEN 1/2 ELSE 0 END)
ELSE 0 END)
) AS Inoperante,
SUM(
(CASE WHEN ARAUCARIA.[Tempo por Stroke_Quality]>50 THEN
(CASE WHEN ARAUCARIA.SB=1 THEN 1/2 ELSE 0 END)
ELSE 0 END)
) AS standby,
--Inoperante + standby as parado,
SUM(
(CASE WHEN ARAUCARIA.[Tempo por Stroke_Quality]<50 THEN 0 ELSE
(CASE WHEN ARAUCARIA.Status=0 THEN 0 ELSE
(CASE WHEN ARAUCARIA.SB=1 THEN 0 ELSE
(CASE WHEN ARAUCARIA.VAZÃO=0 OR ARAUCARIA.VAZÃO=NULL THEN
(CASE WHEN ARAUCARIA.[Tempo por Stroke]>15 THEN 1/2 ELSE 0 END)
ELSE
(CASE WHEN ARAUCARIA.[Quantidade inejtada]<10 THEN 1/2 ELSE 0 END)
END)
END)
END)
END)
) AS Inadequada,
--Operando + TSP + Inadequada + Inoperante + standby as Total
FROM ARAUCARIA
--WHERE ARAUCARIA.E3TIMESTAMP BETWEEN #<%DateIniMed1%># AND #<%DateFimMed1%>#
GROUP BY TO_CHAR(e3timestamp,'DD/MM/YYYY')
私は数式全体を綴ることができますが、クエリはすでに私にとって大きなものであることが分かっていました。 2番目の解決策(**サブクエリ**)はうまくいきました。私はそれですべてを再構成できると思います。 3番目の解決策(** CTE **)は私のために働いていませんでした。私は理由を理解しようとしていますが、最も簡単なCTE式でも結果は常に空です。 –