前提・実現したいこと
SQL文書いてます。
他テーブルからSelectした内容をレコードがあればupdateなければinsertしたいです。
on duplicate key updateを記入するとできるようなのですがここでエラーが出てしまいます。
ご教示よろしくお願いします。
発生している問題・エラーメッセージ
SQL実行中に以下のエラーが発生しました。 エラーコード:-131 [Sybase][ODBC Driver][Sybase IQ]'on' 行 15 の近くに構文エラーがあります。 SQLステータス:37000
該当のソースコード
insert into daily_receipt(kigyo_cd,ymd,receipt_key,Code) select jis.kigyo_cd, ymd, count(distinct(convert(varchar,jis.ymd,120)+jis.hhmm+jis.tenpo_cd+jis.posno+convert(varchar,jis.receiptno))) as receipt_key, jis.kigyo_cd || ymd as code from jis where ymd between '2019-04-16 00:00:00' and '2019-4-23 00:00:00' group by jis.kigyo_cd, ymd on duplicate key update receipt_key= if(Code = code,values(receipt_key),receipt_key)
接続対象データベースの、製品名やバージョンを提示していただけますか?(例:SAP Sybase IQ 16.0 SP04)
それと、使用しているODBCドライバーの名称やバージョンもあわせてご提示をお願いします。
同じSQLでもデータベースによって方言が大きいですから、どのデータベースを使うのかを質問のタグで明示したり、バージョンも明記した方が適切なコメントが付き易いです。 [SQLの観点から Oracle Database, PostgreSQL, MySQL の特徴を整理しよう!](https://www.ashisuto.co.jp/corporate/column/technical-column/detail/1197236_2274.html)
algさん
Orlofskyさん
ありがとうございます。説明が抜けており申し訳ございません。
今回初めて使用するのであまりわかっておらずすいません。
Sybase IQ
Commom SQL Environment ver1.59
になります。