On 10/21/22 10:57 AM, Les wrote:
One of my colleagues pointed out, that they query returns a different
result, if I cast the head_table_id condition to float8 and then back to
int8.
SELECT
c.id <http://c.id>,
tt.code,
c.regno,
(
select count(*)
FROM kap.course_user cu
JOIN wf.workflow w_1 ON w_1.rec_id = cu.id <http://cu.id> AND
w_1.head_table_id::float8::int8 = 25408438504
where cu.is_active AND cu.course_id = c.id <http://c.id> AND
w_1.station_id = 25406740434
) AS col_3
FROM
kap.course c
INNER JOIN kap.training_type tt ON tt.id <http://tt.id> =
c.training_type_id
where c.id <http://c.id> in (26437091668, 26643094740)
Returns:
id |code|regno|col_3|
-----------+----+-----+-----+
26437091668|TA-T| 2632| 1|
26643094740|PEG | 2905| 0|
Although all identifier columns are defined as int8.
So what happens if query the table directly?:
select * from wf.workflow where head_table_id::float8::int8 = 25408438504;
vs
select * from wf.workflow where head_table_id = 25408438504;
FYI, the convention on the list is to not top post, but instead to
bottom or inline post. Also to trim out material which was covered in
previous posts.
--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx