| Author |
Topic |
|
satish.gorijala
Posting Yak Master
182 Posts |
Posted - 2009-01-19 : 03:50:20
|
| Hi, i have the requiremnt to retrive the data among the columsn..Ex:Col1 Col2 Col3 Col4 Col5 zcode12 24 23 2 4 23-45I need output asCol224How can i write a query for this...the columns in a table are 112.this table contains 2.5 crore records.. using zcode i am able to select the desired row. But at the same time i need to pick up the greatest number column from the restult.Select * from table where zcode = '23-45'we got the above row. from that row onwards, i need to pick up greatest number column.G. Satish |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2009-01-19 : 03:54:37
|
SELECT u.zCode, MAX(theValue) FROM Table1 AS t1UNPIVOT (theValue FOR theCol IN (t1.Col1, t1.Col2, t1.Col3, t1.Col4, t1.Col5, t1.zCode) AS uGROUP BY u.zCode E 12°55'05.63"N 56°04'39.26" |
 |
|
|
PeterNeo
Constraint Violating Yak Guru
357 Posts |
Posted - 2009-01-19 : 04:03:52
|
try thisDECLARE @T TABLE (Col1 INT, Col2 INT, Col3 INT, Col4 INT, Col5 INT, zcode VARCHAR(10))INSERT INTO @T SELECT 12, 24, 23, 26, 4, '23-45'SELECT REF, Col, row_noFROM( SELECT REF, Col, val, row_no = row_number() OVER (ORDER BY val DESC) FROM ( SELECT Col1 AS REF, Col = 'Col1', val = Col1 FROM @t WHERE Col1 IS NOT NULL UNION ALL SELECT Col2, Col = 'Col2', val = Col2 FROM @t WHERE Col2 IS NOT NULL UNION ALL SELECT Col3, Col = 'Col3', val = Col3 FROM @t WHERE Col3 IS NOT NULL UNION ALL SELECT Col4, Col = 'Col4', val = Col4 FROM @t WHERE Col4 IS NOT NULL UNION ALL SELECT Col5, Col = 'Col5', val = Col5 FROM @t WHERE Col5 IS NOT NULL ) d) dWHERE row_no = 1 "There is only one difference between a dream and an aim.A dream requires soundless sleep to see,whereas an aim requires sleepless efforts to achieve..!!" |
 |
|
|
satish.gorijala
Posting Yak Master
182 Posts |
Posted - 2009-01-19 : 04:18:04
|
Thank you for your query... i had written the query with my data as follows.SELECT MAX(theValue) FROM CountryOrigin AS t1UNPIVOT (theValue FOR theCol IN (t1.TOTAL,t1.ACAD,t1.AFGH,t1.ALBA,t1.ALSA,t1.MUSL,t1.EGYP,t1.IRAQ,t1.JORD,t1.LEBA,t1.MORO,t1.PALE,t1.SYRI,t1.ABIC,t1.ORAB,t1.ARME,t1.ASSY,t1.AUSA,t1.AUST,t1.BASQ,t1.BELG,t1.BRAZ,t1.BRIT,t1.BULG,t1.CANA,t1.CARP,t1.CELT,t1.CROA,t1.CYPR,t1.CZEC,t1.CSLO,t1.DANE,t1.DUTC,t1.EEUR,t1.ENGL,t1.ESTO,t1.EURO,t1.FINN,t1.EFRE,t1.FCAN,t1.GERM,t1.GRUSS,t1.GREK,t1.GUYA,t1.HUNG,t1.ICEL,t1.PERS,t1.IRIS,t1.ISRE,t1.ITAL,t1.LATV,t1.LITH,t1.LUXE,t1.MACE,t1.MALT,t1.NEZL,t1.NEUR,t1.NORW,t1.PGER,t1.POLE,t1.PORT,t1.ROMA,t1.RUSS,t1.SCAN,t1.SCIR,t1.SCOT,t1.SERB,t1.SLAV,t1.SLOV,t1.SLOE,t1.SOVI,t1.SSAF,t1.CVER,t1.ETHI,t1.GHAN,t1.KENY,t1.LIBE,t1.NIGE,t1.SENE,t1.SLEO,t1.SOMA,t1.SAFR,t1.SUDA,t1.UGAN,t1.ZAIR,t1.ZIMB,t1.AFRI,t1.OAFR,t1.SWED,t1.SWIS,t1.TURK,t1.UKRA,t1.AMER,t1.WELS,t1.WIND,t1.BAHA,t1.BARB,t1.BELI,t1.BERM,t1.BWEI,t1.DWEI,t1.HAIT,t1.JAMA,t1.TRIN,t1.USVI,t1.WEST,t1.OWEI,t1.YUGO,t1.OGRO,t1.UNCL,t1.FREN,t1.AFAM)) AS u where Final_Zip = '93722-4930'Now i am getting accurate result. But i want to know the column name also. I am getting greatest value among columns. But from which column this greatest value is coming? how can i know that?quote: Originally posted by Peso SELECT u.zCode, MAX(theValue) FROM Table1 AS t1UNPIVOT (theValue FOR theCol IN (t1.Col1, t1.Col2, t1.Col3, t1.Col4, t1.Col5, t1.zCode) AS uGROUP BY u.zCode E 12°55'05.63"N 56°04'39.26"
G. Satish |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2009-01-19 : 05:34:24
|
[code]SELECT TOP 1 WITH TIES theValue, theColFROM ( SELECT * FROM CountryOrigin WHERE Final_Zip = '93722-4930' ) AS t1UNPIVOT ( theValue FOR theCol IN (t1.TOTAL,t1.ACAD,t1.AFGH,t1.ALBA,t1.ALSA,t1.MUSL,t1.EGYP,t1.IRAQ,t1.JORD,t1.LEBA,t1.MORO,t1.PALE,t1.SYRI,t1.ABIC,t1.ORAB,t1.ARME,t1.ASSY,t1.AUSA,t1.AUST,t1.BASQ,t1.BELG,t1.BRAZ,t1.BRIT,t1.BULG,t1.CANA,t1.CARP,t1.CELT,t1.CROA,t1.CYPR,t1.CZEC,t1.CSLO,t1.DANE,t1.DUTC,t1.EEUR,t1.ENGL,t1.ESTO,t1.EURO,t1.FINN,t1.EFRE,t1.FCAN,t1.GERM,t1.GRUSS,t1.GREK,t1.GUYA,t1.HUNG,t1.ICEL,t1.PERS,t1.IRIS,t1.ISRE,t1.ITAL,t1.LATV,t1.LITH,t1.LUXE,t1.MACE,t1.MALT,t1.NEZL,t1.NEUR,t1.NORW,t1.PGER,t1.POLE,t1.PORT,t1.ROMA,t1.RUSS,t1.SCAN,t1.SCIR,t1.SCOT,t1.SERB,t1.SLAV,t1.SLOV,t1.SLOE,t1.SOVI,t1.SSAF,t1.CVER,t1.ETHI,t1.GHAN,t1.KENY,t1.LIBE,t1.NIGE,t1.SENE,t1.SLEO,t1.SOMA,t1.SAFR,t1.SUDA,t1.UGAN,t1.ZAIR,t1.ZIMB,t1.AFRI,t1.OAFR,t1.SWED,t1.SWIS,t1.TURK,t1.UKRA,t1.AMER,t1.WELS,t1.WIND,t1.BAHA,t1.BARB,t1.BELI,t1.BERM,t1.BWEI,t1.DWEI,t1.HAIT,t1.JAMA,t1.TRIN,t1.USVI,t1.WEST,t1.OWEI,t1.YUGO,t1.OGRO,t1.UNCL,t1.FREN,t1.AFAM) ) AS uORDER BY theValue DESC[/code] E 12°55'05.63"N 56°04'39.26" |
 |
|
|
satish.gorijala
Posting Yak Master
182 Posts |
Posted - 2009-01-19 : 05:48:26
|
Thank Youquote: Originally posted by Peso
SELECT TOP 1 WITH TIES theValue, theColFROM ( SELECT * FROM CountryOrigin WHERE Final_Zip = '93722-4930' ) AS t1UNPIVOT ( theValue FOR theCol IN (t1.TOTAL,t1.ACAD,t1.AFGH,t1.ALBA,t1.ALSA,t1.MUSL,t1.EGYP,t1.IRAQ,t1.JORD,t1.LEBA,t1.MORO,t1.PALE,t1.SYRI,t1.ABIC,t1.ORAB,t1.ARME,t1.ASSY,t1.AUSA,t1.AUST,t1.BASQ,t1.BELG,t1.BRAZ,t1.BRIT,t1.BULG,t1.CANA,t1.CARP,t1.CELT,t1.CROA,t1.CYPR,t1.CZEC,t1.CSLO,t1.DANE,t1.DUTC,t1.EEUR,t1.ENGL,t1.ESTO,t1.EURO,t1.FINN,t1.EFRE,t1.FCAN,t1.GERM,t1.GRUSS,t1.GREK,t1.GUYA,t1.HUNG,t1.ICEL,t1.PERS,t1.IRIS,t1.ISRE,t1.ITAL,t1.LATV,t1.LITH,t1.LUXE,t1.MACE,t1.MALT,t1.NEZL,t1.NEUR,t1.NORW,t1.PGER,t1.POLE,t1.PORT,t1.ROMA,t1.RUSS,t1.SCAN,t1.SCIR,t1.SCOT,t1.SERB,t1.SLAV,t1.SLOV,t1.SLOE,t1.SOVI,t1.SSAF,t1.CVER,t1.ETHI,t1.GHAN,t1.KENY,t1.LIBE,t1.NIGE,t1.SENE,t1.SLEO,t1.SOMA,t1.SAFR,t1.SUDA,t1.UGAN,t1.ZAIR,t1.ZIMB,t1.AFRI,t1.OAFR,t1.SWED,t1.SWIS,t1.TURK,t1.UKRA,t1.AMER,t1.WELS,t1.WIND,t1.BAHA,t1.BARB,t1.BELI,t1.BERM,t1.BWEI,t1.DWEI,t1.HAIT,t1.JAMA,t1.TRIN,t1.USVI,t1.WEST,t1.OWEI,t1.YUGO,t1.OGRO,t1.UNCL,t1.FREN,t1.AFAM) ) AS uORDER BY theValue DESC E 12°55'05.63"N 56°04'39.26"
G. Satish |
 |
|
|
|
|
|