Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Caduzera

The multi-part identifier + SQL 2005 + Delphi 7

Recommended Posts

Salve galera, tudo beleza?

 

Seguinte, estou usando o SQL Server 2005 com o Delphi 7 e executando o seguinte SQL via Delphi com o DBExpress:

 

SELECT

MC.MAPC_COD,

E.EMP_NOME AS EMPRESA,

MC.COMD_COD,

CD.EMP_COD,

MC.MAPC_DIAS,

MC.MAPC_MESANO,

MC.MAPC_01, MC.MAPC_02, MC.MAPC_03, MC.MAPC_04, MC.MAPC_05, MC.MAPC_06, MC.MAPC_07, MC.MAPC_08, MC.MAPC_09, MC.MAPC_10, MC.MAPC_11, MC.MAPC_12, MC.MAPC_13, MC.MAPC_14, MC.MAPC_15, MC.MAPC_16, MC.MAPC_17, MC.MAPC_18, MC.MAPC_19, MC.MAPC_20, MC.MAPC_21, MC.MAPC_22, MC.MAPC_23, MC.MAPC_24, MC.MAPC_25, MC.MAPC_26, MC.MAPC_27, MC.MAPC_28, MC.MAPC_29, MC.MAPC_30, MC.MAPC_31,

MC.MAPC_STATUS,

CD.COMD_HORA_VENCIMENTO,

(SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC

INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD

LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD

WHERE OC.MAPC_COD = MC.MAPC_COD

AND D.DPO_CAUSA_IMPACTO = 'S'

AND O.OCO_DATA_INICIO = '11/01/2010') AS OCO_01, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/02/2010') AS OCO_02, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/03/2010') AS OCO_03, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/04/2010') AS OCO_04, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/05/2010') AS OCO_05, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/06/2010') AS OCO_06, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/07/2010') AS OCO_07, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/08/2010') AS OCO_08, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/09/2010') AS OCO_09, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/10/2010') AS OCO_10, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/11/2010') AS OCO_11, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/12/2010') AS OCO_12, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/13/2010') AS OCO_13, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/14/2010') AS OCO_14, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/15/2010') AS OCO_15, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/16/2010') AS OCO_16, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/17/2010') AS OCO_17, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/18/2010') AS OCO_18, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/19/2010') AS OCO_19, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/20/2010') AS OCO_20, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/21/2010') AS OCO_21, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/22/2010') AS OCO_22, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/23/2010') AS OCO_23, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/24/2010') AS OCO_24, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/25/2010') AS OCO_25, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/26/2010') AS OCO_26, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/27/2010') AS OCO_27, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/28/2010') AS OCO_28, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/29/2010') AS OCO_29, (SELECT COUNT(OC.OCO_COD) FROM TOCORRENCIA_COMPROMETIMENTO OC INNER JOIN TOCORRENCIA O ON O.OCO_COD = OC.OCO_COD LEFT OUTER JOIN TDET_TIPO_OCORRENCIA D ON D.DTO_COD = O.DTO_COD WHERE OC.MAPC_COD = MC.MAPC_COD AND D.DPO_CAUSA_IMPACTO = 'S' AND O.OCO_DATA_INICIO = '11/30/2010') AS OCO_30 ,C.COM_NOME AS COMPROMETIMENTO

FROM TMAPACOMPROMET MC

LEFT OUTER JOIN TCOMPROMETIMENTO_DET CD ON CD.COMD_COD = MC.COMD_COD

LEFT OUTER JOIN TCOMPROMETIMENTO C ON C.COM_COD = CD.COM_COD

LEFT OUTER JOIN TTIPO_COMPROMETIMENTO TC ON TC.TCO_COD = C.TCO_COD

LEFT OUTER JOIN TAREA A ON A.ARE_COD = C.ARE_COD

LEFT OUTER JOIN TAREA AD ON AD.ARE_COD = CD.ARE_COD_DET

LEFT OUTER JOIN TSUBAREA S ON S.SARE_COD = C.SARE_COD

LEFT OUTER JOIN TSUBAREA SD ON SD.SARE_COD = CD.SARE_COD_DET

LEFT OUTER JOIN TEMPRESAW E ON E.EMP_COD = CD.EMP_COD

LEFT OUTER JOIN TGRUPO_DET_EMPRESAS P ON P.EMP_COD = E.EMP_COD

LEFT OUTER JOIN TGRUPO_EMPRESAS P1 ON P1.GRE_COD = P.GRE_COD

LEFT OUTER JOIN TGRP_ECONOMICO G ON G.GRPE_COD = E.GRPE_COD

LEFT OUTER JOIN TCATEGORIA T ON T.CAT_DESCRICAO = G.CAT_DESCRICAO

WHERE (MC.MAPC_MESANO = :MAPC_MESANO)

AND (G.GRPE_COD = :GRPE_COD)

AND (C.TCO_COD = :TCO_COD)

 

 

Ele me retorna a mensagem: SQL Server Error: SQL State: 42000, SQL Error Code: 4104 The multi-part identifier "C.TCO_COD" could not be bound

 

Se pegar o SQL e jogar no SQL Management Studio e rodar, eu elimino os parâmetros e todo o SQL tranquilo sem erro.

 

O que pode ser??

 

Alguem tem idéia??

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse erro acontece quando erra ou o APELIDO da tabela no campo.

--> C.TCO_COD

 

É C mesmo ??

 

Ou acontece quando você erra a coluna.

--> C.TCO_COD

 

É TCO_COD mesmo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta.

 

É isso mesmo porque pegando o mesmo SQL e executando direto no BD (via Management Studio) roda normal ... (a única diferença é que tiro os parâmetros para executar direto via BD) !!

 

Até porque o que estou fazendo é migrando uma aplicação que era Firebird para SQL Server e todos estes comandos estão funcionando corretamente no Firebird.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.