OK it works. Thanks.
FYI The two values need to be flipped. Search string first and field name second for anyone else who finds this useful.
Select FFORMID,
Char(max(case when LOCATE('Fld1',FFIELDNAM) > 0
Then trim(ffieldval) end),30) as fld1 , ...
Regards,
Richard Schoen
RJS Software Systems Inc.
Where Information Meets Innovation
Document Management, Workflow, Report Delivery, Forms and Business Intelligence
Email: richard@xxxxxxxxxxxxxxx
Web Site:
http://www.rjssoftware.com
Tel: (952) 736-5800
Fax: (952) 736-5801
Toll Free: (888) RJSSOFT
------------------------------
message: 4
date: Mon, 3 Dec 2012 17:22:23 +0000
from: "DeLong, Eric" <EDeLong@xxxxxxxxxxxxxxx>
subject: RE: Interesting SQL Question - Flatten Multiple Records into
One Record
Select FFORMID,
Char(max(case when LOCATE(FFIELDNAM, 'Fld1') > 0
Then trim(ffieldval) end),30) as fld1 , ...
-Eric DeLong
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Richard Schoen
Sent: Monday, December 03, 2012 10:43 AM
To: midrange-l@xxxxxxxxxxxx
Subject: RE: Interesting SQL Question - Flatten Multiple Records into One Record
Eric,
How would LOCATE be used in my sample SQL ?
select FFORMID,
char(max(Case when FFIELDNAM like '%Fld1'
then trim(ffieldval) end),30) as fld1 ,
char(max(Case when FFIELDNAM like '%Fld2'
then trim(ffieldval) end),30) as fld2
from formfld where FFORMID =
'cb3c0801-93a8-1940-ad63-0004ac10'
group by fformid
As an Amazon Associate we earn from qualifying purchases.