前提・実現したいこと
先週下記で質問したものです。
[https://teratail.com/questions/188721]
環境
DSN名 RI
DBMS名 Sybase IQ
バージョン情報 15.40.0000
Commom SQL Environment ver1.59
UpdateとInsertは難しそうなので別々にやることにしたのですが
またエラーです。
更新したいテーブルA
+-------------+--------+---------------+-------------+
| ymd | kigyo | Code |receipt_key |
+-------------+--------+---------------+-------------+
| 2019-04-16 | 036 | 0362019-04-16 |12 |
| 2019-04-17 | 028 | 0282019-04-17 |24 |
| 2019-04-10 | 036 | 0362019-04-10 |15 |
| 2019-04-14 | 028 | 0282019-04-14 |25 |
+-------------+--------+---------------+-------------+
Selectして持ってきたいテーブルB
+-------------+--------+-------------+
| ymd | kigyo | receipt_key |
+-------------+--------+---------------
| 2019-04-16 | 036 | 12 |
| 2019-04-17 | 028 | 24 |
| 2019-04-10 | 036 | 15 |
| 2019-04-14 | 028 | 25 |
+-------------+--------+---------------+
AのテーブルにはCode(ymdとkigyoの文字連結)があるのですが
Bテーブルにはありません。
なのでwhere句最終行でBテーブルを文字連結し同じCodeあればUpdateと書いてるのですが
エラーになります。
receiptkeyは実際にはテーブルBの値をいろいろと足してます。
テーブルBにてもともとないカラムはWhere句で持ってこれないのでしょうか?
発生している問題・エラーメッセージ
SQL実行中に以下のエラーが発生しました。 エラーコード:-131 [Sybase][ODBC Driver][Sybase IQ]'jis' 行 9 の近くに構文エラーがあります。 SQLステータス:37000
該当のソースコード
Sybase
1update A 2set receipt_key = ( 3 select 4 count(distinct(convert(varchar,jis.ymd,120)+jis.hhmm+jis.tenpo_cd+jis.posno+convert(varchar,jis.receiptno))) 5 from B 6 where 7 ymd between '2019-04-16 00:00:00' and '2019-4-23 00:00:00' 8 and 9 A.Code = B.jis.kigyo_cd || B.ymd
試したこと
補足情報(FW/ツールのバージョンなど)
回答3件
あなたの回答
tips
プレビュー