| Author |
Topic |
|
goligol
Posting Yak Master
128 Posts |
Posted - 2011-06-27 : 14:36:33
|
| Hi,I have the following query, I would like to add a column which concatenates the other 4 created columns, but doesn't recognize the concat function:SELECT geo_orig O ,'001' D ,mode_dom M ,'$0000' C ,val V0 ,val_f Vf ,val_cv Vcv ,square(val*val_cv) Vv ,ton T0 ,ton_f Tf ,ton_cv Tcv ,square(ton*ton_cv) Tv ,tmile TM0 ,tmile_f TMf ,tmile_cv TMcv ,square(tmile*tmile_cv) TMv ,OGIDX = CASE WHEN LEFT(GEO_ORIG,2)='01' THEN '10000000' WHEN LEFT(GEO_ORIG,2)='02' THEN '2000000'+RIGHT(GEO_ORIG,1) WHEN LEFT(GEO_ORIG,2)='03' THEN '3000000'+RIGHT(GEO_ORIG,1) WHEN LEFT(GEO_ORIG,2)='04' THEN '4'+RIGHT(GEO_ORIG,2)+'00000' ELSE '5'+SUBSTRING(GEO_ORIG,8,7) END ,'10000000' DGIDX ,MIDX = CASE WHEN mode_dom = '1' THEN '10000000' WHEN mode_dom IN ('13','18','19') THEN '200000' + CAST(mode_dom as char) WHEN mode_dom = '2' THEN '2000000' + CAST(mode_dom as char) WHEN mode_dom IN ('3','6','7') THEN '3000000' + CAST(mode_dom as char) WHEN mode_dom IN ('11','12') THEN '300000' + CAST(mode_dom as char) WHEN mode_dom IN ('14','15','16','17','18') THEN '400000' + CAST(mode_dom as char) END ,'10000000' CIDX , concat (OGIDX , DGIDX , MIDX , CIDX) IDX FROM [bts].[cf07ur00].[a01] |
|
|
robvolk
Most Valuable Yak
15732 Posts |
Posted - 2011-06-27 : 14:41:06
|
| Change: , concat (OGIDX , DGIDX , MIDX , CIDX) IDX To:, OGIDX+DGIDX+MIDX+CIDX IDX |
 |
|
|
goligol
Posting Yak Master
128 Posts |
Posted - 2011-06-27 : 14:43:41
|
| thank you, but if I do this change the following error appears because the other 4 columns I am adding are also created on the fly:Msg 207, Level 16, State 1, Line 42Invalid column name 'OGIDX'.Msg 207, Level 16, State 1, Line 42Invalid column name 'DGIDX'.Msg 207, Level 16, State 1, Line 42Invalid column name 'MIDX'.Msg 207, Level 16, State 1, Line 42Invalid column name 'CIDX'. |
 |
|
|
russell
Pyro-ma-ni-yak
5072 Posts |
Posted - 2011-06-27 : 15:10:41
|
| CASEWHEN LEFT(GEO_ORIG,2)='01' THEN '10000000'WHEN LEFT(GEO_ORIG,2)='02' THEN '2000000'+RIGHT(GEO_ORIG,1)WHEN LEFT(GEO_ORIG,2)='03' THEN '3000000'+RIGHT(GEO_ORIG,1)WHEN LEFT(GEO_ORIG,2)='04' THEN '4'+RIGHT(GEO_ORIG,2)+'00000'ELSE '5'+SUBSTRING(GEO_ORIG,8,7)END +'10000000' +CASEWHEN mode_dom = '1' THEN '10000000'WHEN mode_dom IN ('13','18','19') THEN '200000' + CAST(mode_dom as char)WHEN mode_dom = '2' THEN '2000000' + CAST(mode_dom as char) WHEN mode_dom IN ('3','6','7') THEN '3000000' + CAST(mode_dom as char)WHEN mode_dom IN ('11','12') THEN '300000' + CAST(mode_dom as char)WHEN mode_dom IN ('14','15','16','17','18') THEN '400000' + CAST(mode_dom as char)END +'10000000' |
 |
|
|
goligol
Posting Yak Master
128 Posts |
Posted - 2011-06-28 : 10:26:19
|
| Thank you |
 |
|
|
russell
Pyro-ma-ni-yak
5072 Posts |
Posted - 2011-06-28 : 10:29:30
|
You're welcome |
 |
|
|
|
|
|