Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
TorspeR
Starting Member
11 Posts |
Posted - 2010-09-30 : 02:59:03
|
| Hello, I've got an SQL like so:UPDATE jyypalv_elisa70t INNER JOIN `paketit` ON `jyypalv_elisa70t.paketti` = `paketit.paketti` INNER JOIN `puh_ulk_jyyp_hel` ON `jyypalv_elisa70t.jarjnum` = `puh_ulk_jyyp_hel.jarjnum`SET `elisa70_kulut`=CASE WHEN `jyypalv_elisa70t.puh_min_yht` >= '70' THEN ((`jyypalv_elisa70t.puh_min_yht`*0,09)+`pakhinta`+(`elisasmsm`*`elisakolsms`)+(`saunalsmsm`*`saunasms`)+(`muutsmsm`*muutsms)+(`elisamulm`*`elisakolmul`)+(`saunamulm`*`saunamul`)+(`muutmulm`*`muutmul`)+(`spostimulm`*`spostimul`)+(`palvnum`+`palvnum_yl`+`palvnum_as`+`valtak_yrnum`+`ulkom_puola`+`ulkom_viro`+`ulkoms_v1s`+`ulkomv_v1s`+`ulkoms_v6s`+`ulkomv_v6s`+`smspalv_as`+`smsulkl_v1s`+`smsulkl_v6s`+`smsulkl_v1m`+`datas_internet`+`datas_wap`+`ulkgprs_int`+`ulkgprs_mms`))ELSE (`pakhinta`+(`elisasmsm`*`elisakolsms`)+(`saunalsmsm`*`saunasms`)+(`muutsmsm`*muutsms)+(`elisamulm`*`elisakolmul`)+(`saunamulm`*`saunamul`)+(`muutmulm`*`muutmul`)+(`spostimulm`*`spostimul`)+(`palvnum`+`palvnum_yl`+`palvnum_as`+`valtak_yrnum`+`ulkom_puola`+`ulkom_viro`+`ulkoms_v1s`+`ulkomv_v1s`+`ulkoms_v6s`+`ulkomv_v6s`+`smspalv_as`+`smsulkl_v1s`+`smsulkl_v6s`+`smsulkl_v1m`+`datas_internet`+`datas_wap`+`ulkgprs_int`+`ulkgprs_mms`))ENDThis gimes me: #1054 - Unknown column 'jyypalv_elisa70t.paketti' in 'on clause'. I have this `paketti` column in jyypalv_elisa70t table. What did I do wrong? |
|
|
webfred
Master Smack Fu Yak Hacker
8781 Posts |
Posted - 2010-09-30 : 03:00:46
|
update tableset column= case ...endfrom ...inner join .. No, you're never too old to Yak'n'Roll if you're too young to die. |
 |
|
|
TorspeR
Starting Member
11 Posts |
Posted - 2010-09-30 : 03:24:55
|
| Thanks, but didn't work. I tried it like so:UPDATE jyypalv_elisa70tSET `jyypalv_elisa70t.elisa70_kulut`=CASE WHEN `jyypalv_elisa70t.puh_min_yht` >= '70' THEN ((`puh_min_yht`*0,09)+`pakhinta`+(`elisasmsm`*`elisakolsms`)+(`saunalsmsm`*`saunasms`)+(`muutsmsm`*muutsms)+(`elisamulm`*`elisakolmul`)+(`saunamulm`*`saunamul`)+(`muutmulm`*`muutmul`)+(`spostimulm`*`spostimul`)+(`palvnum`+`palvnum_yl`+`palvnum_as`+`valtak_yrnum`+`ulkom_puola`+`ulkom_viro`+`ulkoms_v1s`+`ulkomv_v1s`+`ulkoms_v6s`+`ulkomv_v6s`+`smspalv_as`+`smsulkl_v1s`+`smsulkl_v6s`+`smsulkl_v1m`+`datas_internet`+`datas_wap`+`ulkgprs_int`+`ulkgprs_mms`))ELSE (`pakhinta`+(`elisasmsm`*`elisakolsms`)+(`saunalsmsm`*`saunasms`)+(`muutsmsm`*muutsms)+(`elisamulm`*`elisakolmul`)+(`saunamulm`*`saunamul`)+(`muutmulm`*`muutmul`)+(`spostimulm`*`spostimul`)+(`palvnum`+`palvnum_yl`+`palvnum_as`+`valtak_yrnum`+`ulkom_puola`+`ulkom_viro`+`ulkoms_v1s`+`ulkomv_v1s`+`ulkoms_v6s`+`ulkomv_v6s`+`smspalv_as`+`smsulkl_v1s`+`smsulkl_v6s`+`smsulkl_v1m`+`datas_internet`+`datas_wap`+`ulkgprs_int`+`ulkgprs_mms`))END FROM jyypalv_elisa70t INNER JOIN paketit ON jyypalv_elisa70t.paketti = paketit.paketti INNER JOIN puh_ulk_jyyp_hel ON jyypalv_elisa70t.jarjnum = puh_ulk_jyyp_hel.jarjnumWhat should I do, it gives: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM jyypalv_elisa70t INNER JOIN paketit ON jyypalv_elisa70t.paketti = pak' at line 12I'm not sure if it requires FROM here.. I tried without and then the error is about INNER JOINs. |
 |
|
|
EugeneLim11
Posting Yak Master
167 Posts |
Posted - 2010-09-30 : 03:33:12
|
| It will be easier for us to help you when you tell us the table name, table columns and what you are trying to do instead of us reading your code and trying to figure out what you are trying to do with your code... ;)check out my blog at http://www.aquariumlore.blogspot.com |
 |
|
|
TorspeR
Starting Member
11 Posts |
Posted - 2010-09-30 : 04:03:02
|
| Ok, I'm gonna try and make this a bit clearer but only try:So, I'd like to update 'jyypalv_elisa70t' table's 'jyypalv_elisa70t.elisa70_kulut' column. I'm trying to use CASE WHENTHEN to get a result I need (WHEN `jyypalv_elisa70t.puh_min_yht` >= '70' THEN ((`puh_min_yht`...)) ELSE ...). I need INNER JOINs because I need to get stuff from other tables. After THEN every column except for `jyypalv_elisa70t.puh_min_yht` ofcourse are from other tables that arein INNER JOINs.Oh and I changed this a bit:UPDATE jyypalv_elisa70tSET `jyypalv_elisa70t.elisa70_kulut`=CASE WHEN `jyypalv_elisa70t.puh_min_yht` >= '70' THEN ((`puh_min_yht`*0,09)+`pakhinta`+(`elisasmsm`*`elisakolsms`)+(`saunalsmsm`*`saunasms`)+(`muutsmsm`*muutsms)+(`elisamulm`*`elisakolmul`)+(`saunamulm`*`saunamul`)+(`muutmulm`*`muutmul`)+(`spostimulm`*`spostimul`)+(`palvnum`+`palvnum_yl`+`palvnum_as`+`valtak_yrnum`+`ulkom_puola`+`ulkom_viro`+`ulkoms_v1s`+`ulkomv_v1s`+`ulkoms_v6s`+`ulkomv_v6s`+`smspalv_as`+`smsulkl_v1s`+`smsulkl_v6s`+`smsulkl_v1m`+`datas_internet`+`datas_wap`+`ulkgprs_int`+`ulkgprs_mms`))ELSE (`pakhinta`+(`elisasmsm`*`elisakolsms`)+(`saunalsmsm`*`saunasms`)+(`muutsmsm`*muutsms)+(`elisamulm`*`elisakolmul`)+(`saunamulm`*`saunamul`)+(`muutmulm`*`muutmul`)+(`spostimulm`*`spostimul`)+(`palvnum`+`palvnum_yl`+`palvnum_as`+`valtak_yrnum`+`ulkom_puola`+`ulkom_viro`+`ulkoms_v1s`+`ulkomv_v1s`+`ulkoms_v6s`+`ulkomv_v6s`+`smspalv_as`+`smsulkl_v1s`+`smsulkl_v6s`+`smsulkl_v1m`+`datas_internet`+`datas_wap`+`ulkgprs_int`+`ulkgprs_mms`))END FROM jyypalv_elisa70t INNER JOIN jyypalv_helmi ON jyypalv_elisa70t.jarjnum = jyypalv_helmi.jarjnum INNER JOIN paketit ON jyypalv_elisa70t.paketti = paketit.paketti INNER JOIN puh_ulk_jyyp_hel ON jyypalv_elisa70t.jarjnum = puh_ulk_jyyp_hel.jarjnum |
 |
|
|
webfred
Master Smack Fu Yak Hacker
8781 Posts |
Posted - 2010-09-30 : 07:54:40
|
This is a MS SQL Server forum.Maybe there is something special in MySQL and you should try to get help in a MySQL forum. No, you're never too old to Yak'n'Roll if you're too young to die. |
 |
|
|
|
|
|
|
|