wrong resultset (subquery + derived table + union)
--------------------------------------------------

                 Key: CORE-4107
                 URL: http://tracker.firebirdsql.org/browse/CORE-4107
             Project: Firebird Core
          Issue Type: Bug
          Components: Engine
    Affects Versions: 2.5.2 Update 1
            Reporter: Attila Molnár


Hi!

This is the select which produce wrong resultset

select 1 I1, NYTD.GYSOR GL_ANYK_NYOMTATVANY_TET__GYSOR, U.KULSO_KOD 
UGYFEL__KULSO_KOD, PB.KDAT PU_BIZ__KDAT,
       L.B_KELT PU_BIZ__KELT, L.B_TELJ PU_BIZ__TELJ,
       L.B_BIZSZAM,
       cast((select first 1 EL.BIZSZAM
             from (select B1x.BIZSZAM
                   from PU_BIZ B2x
                   inner join PU_BIZKAPCS Kx on Kx.PBIZ_ID2 = B2x.ID
                   inner join PU_BIZ B1x on B1x.ID = Kx.PBIZ_ID1
                   where B2x.ID = pb.id
                   union
                   select B1.BIZSZAM
                   from PU_BIZ B2
                   inner join PU_BTET T2 on T2.PBIZ_ID = B2.ID
                   inner join PU_BIZKAPCS K on K.PBIZ_ID2 = T2.ID
                   inner join PU_BTET T1 on T1.ID = K.PBIZ_ID1
                   inner join PU_BIZ B1 on B1.ID = T1.PBIZ_ID
                   where B2.ID = pb.ID) EL
                   order by el.bizszam nulls last) as varchar(20)) KAPCS_BIZ,
       L.B_HIVSZAM PU_BIZ__HIVSZAM,
       L.B_ADOSZAM UGYFEL__ADOSZAM, L.B_CSASZ UGYFEL__CSASZ,
       sum(L.T_ALAP) PU_BTET__ALAP, sum(L.T_ADO) PU_BTET__ADO
from PU_AFA_LISTA(114255076, null, 'T', null) L
 left join PU_AFA_ARCHIV_65A A on ((A.PU_AFATET_ID = L.T_ID) or 
(A.PU_AFA_ARCHIV_T_ID = L.T_ID))
 left join GL_ANYK_TET T on T.ID = A.GL_ANYK_TET_ID
 left join GL_ANYK_NYOMTATVANY_TET NYTD on NYTD.id = T.NYOMTATVANY_TET_ID
 left join UGYFEL U on U.ID = L.B_UGYF_ID
 left join PU_BIZ PB on PB.ID = L.B_PU_BIZ_ID
where L.T_SV = 'S' and
      ((NYTD.GYSOR <> 66) or (not exists(select first 1 1
                                        from PU_AFA_LISTA(114255076, null, 'T', 
't.id=' || L.T_ID) L2
                                        left join PU_AFA_ARCHIV_65A A2 on 
((A2.PU_AFATET_ID = L2.T_ID) or (A2.PU_AFA_ARCHIV_T_ID = L2.T_ID))
                                        left join GL_ANYK_TET T2 on T2.ID = 
A2.GL_ANYK_TET_ID
                                        left join GL_ANYK_NYOMTATVANY_TET NYT2 
on NYT2.ID = T2.NYOMTATVANY_TET_ID
                                        where NYT2.GYSOR in (52, 77))))

--/*1. case : */ and pb.id in (114268418)--kapcs_biz value is NULL : this is OK
--/*2. case : */ and pb.id in (114258644)--kapcs_biz value is T612-17/2013 : 
this is OK
--/*3. case : */ and pb.id in (114268418, 114258644)--kapcs_biz values are 
T612-17/2013 in both line : this is WRONG. for 114268418 (b_bizszam=5918929) it 
should be NULL
group by 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11



The database is big  (861,5 M - rar compressed). How can I send it?

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to