0

私は次のSQL統計情報を持っています

SELECT   COUNT('Oprettet af Initialer') AS meetings_booked,
         Dato salgstrin,
         VTEAM.TEAM
FROM     KS_DRIFT.DIAN_POT_OPR POT 
         RIGHT JOIN KS_DRIFT.V_TEAM_DATO VTEAM ON VTEAM.DATO = POT.'Dato salgstrin'
WHERE    exists (SELECT 1 FROM KS_DRIFT.V_TEAM_DATO WHERE KS_DRIFT.DIAN_POT_OPR.'Oprettet af Initialer' = KS_DRIFT.V_TEAM_DATO.INITIALER)
AND      'Salgstri' NOT IN('01 - Muligt emne','02 - Aktivt emne')
AND      'Oprettet dato' BETWEEN '2013-09-04' AND '2013-09-04'
GROUP BY 'Dato salgstrin' 'Oprettet af Initialer', VTEAM.TEAM
ORDER BY 'Dato salgstrin'

これを実行しようとすると、次のエラーが表示されます。

Invalid user.table.column, table.colum, or column specification

なぜこれが起こっているのか、どうすれば修正できるのか誰か知っていますか?

テーブルの画像

KS_DRIFT.DIAN_POT_OPR:

表1

KS_DRIFT.VTEAM_DATO:

ここに画像の説明を入力

4

2 に答える 2

0

列/テーブル名にスペースが含まれている場合や、 またはのような予約名である場合に使用される'二重引用符を使用する代わりに、文字列をマークするために使用される単一引用符を使用しています。テーブル名から削除されませんでしたが、 format が必要であり、 ではありません。"USERINDEXKS_DRIFTTableName.ColumnNamexxx.TableName.ColumnName

このクエリは機能するはずです (ただし、そのKS_DRIFT部分を修正する必要があります)。

SELECT   COUNT(POT."Oprettet af Initialer") AS meetings_booked,
         POT."Dato salgstrin",
         VTEAM.TEAM
FROM     KS_DRIFT.DIAN_POT_OPR POT 
         RIGHT JOIN KS_DRIFT.V_TEAM_DATO VTEAM ON VTEAM.DATO = POT."Dato salgstrin"
WHERE    exists (SELECT 1 FROM KS_DRIFT.V_TEAM_DATO WHERE KS_DRIFT.DIAN_POT_OPR."Oprettet af Initialer" = KS_DRIFT.V_TEAM_DATO.INITIALER)
AND      POT."Salgstri" NOT IN('01 - Muligt emne','02 - Aktivt emne')
AND      POT."Oprettet dato" BETWEEN '2013-09-04' AND '2013-09-04'
GROUP BY "Dato salgstrin", "Oprettet af Initialer", VTEAM.TEAM
ORDER BY "Dato salgstrin"

スペースを含む名前に関するさらなる問題を避けるために、文字を使用することをお勧めします_

Oracle Databaseのオブジェクト名と修飾子を参照:

注意: データベース・オブジェクト名に引用符付き識別子を使用することはお薦めしません。これらの引用符で囲まれた識別子は SQL*Plus で受け入れられますが、データベース オブジェクトを管理する他のツールを使用する場合は無効になる場合があります。


追加: 私が間違っていなければ、列"Oprettet dato"DATE型であり、to_date()関数を使用し、この WHERE 句を使用してクエリを変更する必要があります。

AND "Oprettet dato" BETWEEN to_date('2013-09-04','YYYY-MM-DD') AND to_date('2013-09-04','YYYY-MM-DD')
于 2013-09-05T13:18:31.263 に答える