Sql server 2008 r2 不正确的语法多部分标识符
目前,我得到了一个错误的语法,但无法找到它的起源。有没有想过我错过了什么。找不到多部分标识符pvxme.mtSql server 2008 r2 不正确的语法多部分标识符,sql-server-2008-r2,Sql Server 2008 R2,目前,我得到了一个错误的语法,但无法找到它的起源。有没有想过我错过了什么。找不到多部分标识符pvxme.mt SELECT PVXME.MT PVXME.MT_VERSION PVXME.START_DATE_LOCAL PVXMEDS.CREATION_DATE_LOCAL PVXMIHS.USER_NAME PVXMEDE.PAT_ID PVXMEDE.STRING_VALUE PVXMEDE.NUM_VALUE AS MEDE
SELECT
PVXME.MT
PVXME.MT_VERSION
PVXME.START_DATE_LOCAL
PVXMEDS.CREATION_DATE_LOCAL
PVXMIHS.USER_NAME
PVXMEDE.PAT_ID
PVXMEDE.STRING_VALUE
PVXMEDE.NUM_VALUE AS MEDE_NUM_VALUE
RVXMIIF2.II
RVXMIIF2.NUM_VALUE AS MIIF_NUM_VALUE;
FROM
PVXMEDE
RIGHT OUTER JOIN
PVXMEDG ON PVXMEDG.ME = PVXMEDE.ME;
RIGHT OUTER JOIN
PVXMEDG ON PVXMEDG.SEQUENCE = PVXMEDE.SEQUENCE
AND PVXMEDG.SOURCE_TP = PVXMEDE.SOURCE_TP
AND PVXMEDG.SOURCE_ID = PVXMEDE.SOURCE_ID
AND PVXMEDG.SOURCE_VERSION = PVXMEDE.SOURCE_VERSION;
RIGHT OUTER JOIN
PVXMEDS ON PVXMEDS.ME = PVXMEDG.ME
AND PVXMEDS.SEQUENCE=PVXMEDG.SEQUENCE;
RIGHT OUTER JOIN
PVXME ON PVXME.ME = PVXMEDS.ME AND PVXME.MT=;
RIGHT OUTER JOIN
PVXMI ON PVXMI.MI = PVXME.MI;
LEFT OUTER JOIN
PVXMIHS ON PVXMIHS.MI = PVXME.MI;
LEFT OUTER JOIN
PVXMIID ON PVXME.ME = PVXMIID2.ME;
LEFT OUTER JOIN
RVXMIII ON PVXMIID2.MI = RVXMIIF2.MI
AND PVXMIID2.ID = RVXMIIF2.ID
AND PVXMIID2.ID_SEQUENCE = RVXMIIF2.ID_SEQUENCE
AND PVXMIID2.ME = RVXMIIF2.ME;
WHERE
(PVXMIHS.USER_NAME <> 'sipat'
AND PVXMIHS.WHAT = 'MethodPrepare'
AND PVXME.CX_STRING_4 = '20190117-7h40m'
AND PVXME.MT LIKE 'MK-0431%Tab CA%'
AND PVXMEDE.PAT_ID NOT LIKE '%Spectrum')
AND (RVXMIIF2.II = 'LeverageLimit'OR RVXMIIF2.II = 'XresidualLimit')
试试这个:
在“选择列”列表中的每一列后面都放一个冒号
不要在列列表和每个联接条件的末尾加分号
完成引用PVXME.MT=……的右侧外部联接。。。。。。。
代码:
请以格式化文本形式发布查询-不要发布代码截图!这很烦人,因此不受欢迎……@marc_.s。很抱歉。我已经更新了我的帖子。如果你发布代码、XML或数据示例,请在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮{},以很好地格式化和语法突出显示它!两件事跳出-你真的想在每个连接条件后使用分号吗?PVXMEDG.ME上的右外连接PVXMEDG=PVXMEDE.ME;我不确定SQL Server是如何喜欢它的。。。。。这个连接条件绝对是不完整的:PVXME.ME=PVXMEDS.ME和PVXME.MT=上的右外部连接PVXME;这可能是您遇到的错误之一,我得到的pvxmede对象名无效。有什么想法吗?现在我得到:Msg 1013,级别16,状态1,第1行FROM子句中的对象PVXMEDG和PVXMEDG具有相同的公开名称。使用相关名称来区分它们。@Diego83;您两次加入PVXMEDG-因此,您需要使用表别名将这两个分开我将别名P1和P2添加到我的查询中,我现在获得了一些性能上的成功。Msg 1105,级别17,状态2,第1行无法为数据库“tempdb”中的对象“dbo.SORT临时运行存储:140738207350784”分配空间,因为“主”文件组已满。通过删除不需要的文件、删除文件组中的对象、向文件组添加其他文件或为文件组中的现有文件启用自动增长来创建磁盘空间。对微调有什么想法吗?
SELECT
PVXME.MT,
PVXME.MT_VERSION,
PVXME.START_DATE_LOCAL,
PVXMEDS.CREATION_DATE_LOCAL,
PVXMIHS.USER_NAME,
PVXMEDE.PAT_ID,
PVXMEDE.STRING_VALUE,
PVXMEDE.NUM_VALUE AS MEDE_NUM_VALUE,
RVXMIIF2.II,
RVXMIIF2.NUM_VALUE AS MIIF_NUM_VALUE
FROM
PVXMEDE
RIGHT OUTER JOIN
PVXMEDG P1 ON P1.ME = PVXMEDE.ME -- use table alias P1 here
RIGHT OUTER JOIN
PVXMEDG P2 ON P2.SEQUENCE = PVXMEDE.SEQUENCE -- use table alias P2 here
AND P2.SOURCE_TP = PVXMEDE.SOURCE_TP
AND P2.SOURCE_ID = PVXMEDE.SOURCE_ID
AND P2.SOURCE_VERSION = PVXMEDE.SOURCE_VERSION
RIGHT OUTER JOIN
PVXMEDS ON PVXMEDS.ME = P2.ME
AND PVXMEDS.SEQUENCE = P2.SEQUENCE
RIGHT OUTER JOIN
PVXME ON PVXME.ME = PVXMEDS.ME AND PVXME.MT = ?????? -- ** COMPLETE THIS! **
RIGHT OUTER JOIN
PVXMI ON PVXMI.MI = PVXME.MI
LEFT OUTER JOIN
PVXMIHS ON PVXMIHS.MI = PVXME.MI
LEFT OUTER JOIN
PVXMIID ON PVXME.ME = PVXMIID2.ME
LEFT OUTER JOIN
RVXMIII ON PVXMIID2.MI = RVXMIIF2.MI
AND PVXMIID2.ID = RVXMIIF2.ID
AND PVXMIID2.ID_SEQUENCE = RVXMIIF2.ID_SEQUENCE
AND PVXMIID2.ME = RVXMIIF2.ME
WHERE
(PVXMIHS.USER_NAME <> 'sipat'
AND PVXMIHS.WHAT = 'MethodPrepare'
AND PVXME.CX_STRING_4 = '20190117-7h40m'
AND PVXME.MT LIKE 'MK-0431%Tab CA%'
AND PVXMEDE.PAT_ID NOT LIKE '%Spectrum')
AND (RVXMIIF2.II = 'LeverageLimit'OR RVXMIIF2.II = 'XresidualLimit')