[英]Why my SQL query does not apply my where not equal condition?
I used a CTE (temp table) to compute data through semesters.我使用 CTE(临时表)来计算整个学期的数据。 With my query, I want to compare if my data (already aggregated) are equal to my sum computed in my CTE.
通过我的查询,我想比较我的数据(已经聚合)是否等于我在 CTE 中计算的总和。 However, when using
WHERE data_already_aggregated <> data_computed
I got a result where my results in those columns are equal.但是,当使用
WHERE data_already_aggregated <> data_computed
时,我得到的结果是我在这些列中的结果相等。 I tried to use =!我试着用=! as well, and also =.
还有,还有=。 Last option worked, but not the way I want.
最后一个选项有效,但不是我想要的方式。
Here my code:这是我的代码:
WITH trimestriel AS(
SELECT "donnéestrim".annee,
"donnéestrim".trimestre,
"donnéestrim".codescpi,
scpi.scpi,
"donnéestrim"."rd_t",
SUM("donnéestrim".rd_t) OVER (PARTITION BY "donnéestrim".annee, "donnéestrim".codescpi) AS "trim_sum_totalYear_rd_t",
row_number() over (partition BY scpi.codescpi, annee) AS "row_number"
FROM "donnéestrim"
LEFT JOIN scpi ON scpi.codescpi = "donnéestrim".codescpi
ORDER BY "donnéestrim".annee)
SELECT "annuel".codescpi,
scpi.scpi ,
"annuel".annee,
trimestriel."trimestre",
"annuel".revdisavpl AS "annuel_revdisavpl",
"trim_sum_totalYear_rd_t",
"rd_t" AS "trim_rd_t"
FROM "annuel"
LEFT JOIN scpi ON scpi.codescpi = "annuel".codescpi
LEFT JOIN trimestriel ON trimestriel.codescpi = "annuel".codescpi AND trimestriel.annee=annuel.annee
WHERE "annuel".annee = '2018' and scpi.codescpi = '129' and "annuel".revdisavpl != "trim_sum_totalYear_rd_t"
As @JNevill suggested, it's a data type problem.正如@JNevill 所建议的,这是一个数据类型问题。 A double precision type only display the data with its specific parameters, but can store more information if casted.
双精度类型仅显示具有其特定参数的数据,但如果进行转换,则可以存储更多信息。 I cast it to real, and I can saw the gaps between my data.
我把它转换成真实的,我可以看到我的数据之间的差距。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.