Hi,
I just tried this SQL in my database:
select Upd.*
from "Uppdatering" Upd
inner join "Uppgift" Upg on Upg."Tilläggsuppdatering" = Upd."ECO_ID"
inner join "Uppgiftshållare" UH on UH."ECO_ID" = Upg."Hållare"
inner join "Uppgiftshanterare" Hant on Hant."ECO_ID" = UH."Hanterare"
inner join "Företag" F on F."Uppgiftshanterare" = Hant."ECO_ID"
where Upg."Tilläggsuppdatering" = Upd."ECO_ID"
and F."Orgnr" = '165565209771'
It works and returns 45 rows.
Then I add "distinct":
select distinct Upd.*
from "Uppdatering" Upd
inner join "Uppgift" Upg on Upg."Tilläggsuppdatering" = Upd."ECO_ID"
inner join "Uppgiftshållare" UH on UH."ECO_ID" = Upg."Hållare"
inner join "Uppgiftshanterare" Hant on Hant."ECO_ID" = UH."Hanterare"
inner join "Företag" F on F."Uppgiftshanterare" = Hant."ECO_ID"
where Upg."Tilläggsuppdatering" = Upd."ECO_ID"
and F."Orgnr" = '165565209771'
This returns no rows at all. Should return at least one, no matter what
the 45 rows looked like.
In ISQL it works and returns a single row, so I assume this is a bug in
FR. The log page shows this after executing the two queries:
Preparing query: select Upd.*
from "Uppdatering" Upd
inner join "Uppgift" Upg on Upg."Tilläggsuppdatering" = Upd."ECO_ID"
inner join "Uppgiftshållare" UH on UH."ECO_ID" = Upg."Hållare"
inner join "Uppgiftshanterare" Hant on Hant."ECO_ID" = UH."Hanterare"
inner join "Företag" F on F."Uppgiftshanterare" = Hant."ECO_ID"
where Upg."Tilläggsuppdatering" = Upd."ECO_ID"
and F."Orgnr" = '165565209771'
Prepare time: 0.064s
Field #01: Uppdatering.ECO_ID Alias:ECO_ID Type:BIGINT
Field #02: Uppdatering.ECO_TYPE Alias:ECO_TYPE Type:SMALLINT
Field #03: Uppdatering.Tidpunkt Alias:Tidpunkt Type:TIMESTAMP
PLAN JOIN (F INDEX (IDX_Företag_Orgnr), HANT INDEX
(IX_PK_Uppgiftshanterare), UH INDEX (IX_Uppgiftshållare_HanDS2), UPG
INDEX (IX_Uppgift_Hållare), UPD INDEX (IX_PK_Uppdatering))
Executing...
Done.
5975 fetches, 0 marks, 5268 reads, 0 writes.
0 inserts, 0 updates, 0 deletes, 181 index, 0 seq.
Delta memory: 65632 bytes.
Total execution time: 0.089s
Script execution finished.
Preparing query: select distinct Upd.*
from "Uppdatering" Upd
inner join "Uppgift" Upg on Upg."Tilläggsuppdatering" = Upd."ECO_ID"
inner join "Uppgiftshållare" UH on UH."ECO_ID" = Upg."Hållare"
inner join "Uppgiftshanterare" Hant on Hant."ECO_ID" = UH."Hanterare"
inner join "Företag" F on F."Uppgiftshanterare" = Hant."ECO_ID"
where Upg."Tilläggsuppdatering" = Upd."ECO_ID"
and F."Orgnr" = '165565209771'
Prepare time: 0.054s
Field #01: Uppdatering.ECO_ID Alias:ECO_ID Type:BIGINT
Field #02: Uppdatering.ECO_TYPE Alias:ECO_TYPE Type:SMALLINT
Field #03: Uppdatering.Tidpunkt Alias:Tidpunkt Type:TIMESTAMP
PLAN SORT (JOIN (F INDEX (IDX_Företag_Orgnr), HANT INDEX
(IX_PK_Uppgiftshanterare), UH INDEX (IX_Uppgiftshållare_HanDS2), UPG
INDEX (IX_Uppgift_Hållare), UPD INDEX (IX_PK_Uppdatering)))
Executing...
Done.
5975 fetches, 0 marks, 5268 reads, 0 writes.
0 inserts, 0 updates, 0 deletes, 181 index, 0 seq.
Delta memory: 1448 bytes.
Total execution time: 0.077s
Script execution finished.
Let me know if you need more info from me to be able to debug it.
Regards,
Kjell
--
------------------------------
Kjell Rilbe
DataDIA AB
E-post: kjell.rilbe@...
Telefon: 08-761 06 55
Mobil: 0733-44 24 64
|