Select com Union

Delphi

18/03/2004

Qual o problema com esse script?

SELECT CODBARRA, DESCRICAO AS DESCRNF, PRECOPROMO AS PRECOVEND, DATAATE FROM CDPROMOCAOITEM WHERE DESCRICAO LIKE ´AB¬´ UNION
SELECT CODBARRA, DESCRNF, PRECOVEND FROM CDPRODUTOS WHERE DESCRNF LIKE ´AB¬´

Obrigado


Ninjapan

Ninjapan

Curtidas 0

Respostas

Lucas Silva

Lucas Silva

18/03/2004

qual o erro que está dando?


GOSTEI 0
Blackjaguar

Blackjaguar

18/03/2004

Bom,

De cara já dá para perceber que o primeiro SQL tá retornando 4 campos enquanto que o segundo só tá retornando 3.

Para que uma Union funcione, os campos das consultas devem ser compatíveis entre si. Não esquencendo da ordem.


GOSTEI 0
Ninjapan

Ninjapan

18/03/2004

Bom, De cara já dá para perceber que o primeiro SQL tá retornando 4 campos enquanto que o segundo só tá retornando 3. Para que uma Union funcione, os campos das consultas devem ser compatíveis entre si. Não esquencendo da ordem.


Se tirar o DATAATE retorna o seguinte

Invalid command
Data type unknown

Por acaso os campos devem ter o mesmo tipo e tamanho para funcionarem? Se for isso, a mensagem não teria sentido.

Obrigado


GOSTEI 0
Blackjaguar

Blackjaguar

18/03/2004

É profundamente desejável que os campos sejam do mesmo tipo.
Mesmo que eles não sejam vc pode forçar a conversão para que fiquem do mesmo tipo.

No SQL vc usaria a função CONVERT(....)


GOSTEI 0
Paulo_amorim

Paulo_amorim

18/03/2004

Olá

vc nao precisa TIRAR campos da sua Query soh pra igualar no UNION...
faça ao contrário:

EX:
SELECT campo1, campo2, campo3 FROM tab1
UNION
SELECT campo1, campo2, ´´ campo3 FROM tab2


Perceba que o campo3 NAO EXISTE na tab2, mas passando vazio com LABEL campo3 ele aceitará.

Mas os campos não precisam ser compatíveis para entrarem no UNION

Até+
Paulo_Amorim


GOSTEI 0
POSTAR