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