Query help
From: Steffen Kother <steffen.kother_at_gmx.net>
Date: Fri, 07 Mar 2014 14:16:33 +0100
Message-ID: <bntv5hFr10uU1_at_mid.individual.net>
[Quoted] Hi there,
Date: Fri, 07 Mar 2014 14:16:33 +0100
Message-ID: <bntv5hFr10uU1_at_mid.individual.net>
[Quoted] Hi there,
I'm sitting here trying to rewrite query for using with PHP. At first I built it with Access 2010 and there it works like expected. But I need access query in oracle...
It should look for GSPROGRP in table GSDAT and link it to the right name in SDDATEN in table SDAT. The problem is GSPROGRP contains at least 1 up to 4 characters, eg. 05, 16, DR, RGW, but SDKEY in SDDATEN stores it as 0005, 0016, 00DR or 0RGW.
My oracle query doesn't show any result. Can anybody help me with some hints? Maybe sub select or something else? Queries are under my sig.
--
Kind regards,
Steffen
Oracle query:
SELECT
trim(GSPROGRP) AS PrdGrp,
trim(substr(sddaten, 2, 29)) AS PrdGrpBez
FROM
GSDAT,
sddat
where
GSDAT.GSMANDANT = '00'
AND (case length(trim(gsprogrp))
when 1 then '000' || gsprogrp
when 2 then '00' || gsprogrp
when 3 then '0' || gsprogrp
else gsprogrp
end) = sddat.sdkey
AND SDDAT.SDSA = '0196'
ORDER BY
GSDAT.GSPROGRP;
Access query:
SELECT
GSDAT.GSPROGRP AS PrdGrp,
Trim(Mid(sddaten,2,29)) AS PrdGrpBez
FROM
GSDAT,
SDDAT
GROUP BY
GSDAT.GSPROGRP,
Trim(Mid(sddaten,2,29)),
GSDAT.GSMANDANT,
SDDAT.SDKEY,
SDDAT.SDSA
HAVING
(((GSDAT.GSMANDANT)='00')
AND ((SDDAT.SDKEY)=IIf(Len(Trim(gsprogrp))=1,'000' &
gsprogrp,IIf(Len(Trim(gsprogrp))=2,'00' &
gsprogrp,IIf(Len(Trim(gsprogrp))=3,'0 ' &
gsprogrp,gsprogrp))))
AND ((SDDAT.SDSA)='0196'))
ORDER BY
GSDAT.GSPROGRP;
Received on Fri Mar 07 2014 - 14:16:33 CET
