oracle - Want SQL query to be modified or corrected -
when running query:
select sm.stylename, (select fieldvalue auxiliaryfield af af.stylename = sm.stylename , fieldlabel = 'vendor name') "vendor name", (select fieldvalue auxiliaryfield af af.stylename = sm.stylename , fieldlabel = 'vendor number') "vendor number", (select fieldvalue auxiliaryfield af af.stylename = sm.stylename , fieldlabel = 'vendor address') "vendor address", (select fieldvalue auxiliaryfield af af.stylename = sm.stylename , fieldlabel = 'factory name') "factory name", (select fieldvalue auxiliaryfield af af.stylename = sm.stylename , fieldlabel = 'factory address') "factory address" stylemaster sm order sm.stylename; i error message:
"ora-01427: single-row subquery returns more 1 row 01427. 00000-"single-row subquery returns more 1 row" can please in resolving issue?
one of subqueries returning more 1 value. can fix symptom adding where rownum = 1 or aggregation function:
select sm.stylename, (select max(fieldvalue) auxiliaryfield af af.stylename = sm.stylename , fieldlabel = 'vendor name') "vendor name", (select max(fieldvalue) auxiliaryfield af af.stylename = sm.stylename , fieldlabel = 'vendor number') "vendor number", (select max(fieldvalue) auxiliaryfield af af.stylename = sm.stylename , fieldlabel = 'vendor address') "vendor address", (select max(fieldvalue) auxiliaryfield af af.stylename = sm.stylename , fieldlabel = 'factory name') "factory name", (select max(fieldvalue) auxiliaryfield af af.stylename = sm.stylename , fieldlabel = 'factory address') "factory address" stylemaster sm order sm.stylename; that rid of problem, might want investigate why duplicates showing begin with.
edit:
if max() doesn't work on data types, use rownum = 1:
select sm.stylename, (select (fieldvalue) auxiliaryfield af af.stylename = sm.stylename , fieldlabel = 'vendor name' , rownum = 1) "vendor name", (select (fieldvalue) auxiliaryfield af af.stylename = sm.stylename , fieldlabel = 'vendor number' , rownum = 1) "vendor number", (select (fieldvalue) auxiliaryfield af af.stylename = sm.stylename , fieldlabel = 'vendor address' , rownum = 1) "vendor address", (select (fieldvalue) auxiliaryfield af af.stylename = sm.stylename , fieldlabel = 'factory name' , rownum = 1) "factory name", (select (fieldvalue) auxiliaryfield af af.stylename = sm.stylename , fieldlabel = 'factory address' , rownum = 1) "factory address" stylemaster sm order sm.stylename;
Comments
Post a Comment