Consulta UNION
Estou tentando criar uma consulta UNION e não estou conseguindo. Tô usando o seguinte código:
SELECT ctsalini.id_plano, ctplano.conta, ctsalini.cgccpf, ctplano.descrconta, ctsalini.valor AS salini, 0 AS debito, 0 AS credito
FROM ctsalini
INNER JOIN ctplano ON ctsalini.id_plano = ctplano.id_plano
ORDER BY ctplano.conta, ctsalini.cgccpf;
UNION
SELECT ctlancto.id_plano, ctplano.conta, ctlancto.cgccpf, ctplano.descrconta, 0 AS salini, If([ctlancto].[tipolancto]='D',[ctlancto].[valor],0) AS debito, If([ctlancto].[tipolancto]='C',[ctlancto].[valor],0) AS credito
FROM ctplano INNER JOIN ctlancto ON ctplano.id_plano = ctlancto.[id_plano ];
Tá dando erro de sintaxe. Se alguem puder me ajudar eu agradeço.
SELECT ctsalini.id_plano, ctplano.conta, ctsalini.cgccpf, ctplano.descrconta, ctsalini.valor AS salini, 0 AS debito, 0 AS credito
FROM ctsalini
INNER JOIN ctplano ON ctsalini.id_plano = ctplano.id_plano
ORDER BY ctplano.conta, ctsalini.cgccpf;
UNION
SELECT ctlancto.id_plano, ctplano.conta, ctlancto.cgccpf, ctplano.descrconta, 0 AS salini, If([ctlancto].[tipolancto]='D',[ctlancto].[valor],0) AS debito, If([ctlancto].[tipolancto]='C',[ctlancto].[valor],0) AS credito
FROM ctplano INNER JOIN ctlancto ON ctplano.id_plano = ctlancto.[id_plano ];
Tá dando erro de sintaxe. Se alguem puder me ajudar eu agradeço.
comentários (0)
suspender
Lista de Respostas:
23/06/2010 11:14am
(~14 anos atrás)
(~14 anos atrás)
Tente assim
SELECT ctsalini.id_plano, ctplano.conta, ctsalini.cgccpf, ctplano.descrconta, ctsalini.valor AS salini, 0 AS debito, 0 AS credito FROM ctsalini INNER JOIN ctplano ON ctsalini.id_plano = ctplano.id_plano ORDER BY ctplano.conta, ctsalini.cgccpf UNION SELECT ctlancto.id_plano, ctplano.conta, ctlancto.cgccpf, ctplano.descrconta, 0 AS salini, If(ctlancto.tipolancto='D',ctlancto.valor,0) AS debito, If(ctlancto.tipolancto='C',ctlancto.valor,0) AS credito FROM ctplano INNER JOIN ctlancto ON ctplano.id_plano = ctlancto.id_plano
21/06/2010 9:47pm
(~14 anos atrás)
(~14 anos atrás)
Isso é em MySQL ou MSSQL?
Se for MySQL nao use colchetes para os nomes das entidades e seus atributos.
If([ctlancto].[tipolancto]='D',[ctlancto].[valor],0) AS debito, está errado para MySQL.
o correto seria
If(ctlancto.tipolancto='D',ctlancto.valor,0) AS debito,
Se for MySQL nao use colchetes para os nomes das entidades e seus atributos.
If([ctlancto].[tipolancto]='D',[ctlancto].[valor],0) AS debito, está errado para MySQL.
o correto seria
If(ctlancto.tipolancto='D',ctlancto.valor,0) AS debito,
22/06/2010 9:38am
(~14 anos atrás)
(~14 anos atrás)
Tem razão Marcos... mas eu corrigi o erro e continua dando erro de sintaxe. Meu código ficou assim:
SELECT ctsalini.id_plano, ctplano.conta, ctsalini.cgccpf, ctplano.descrconta, ctsalini.valor AS salini, 0 AS debito, 0 AS credito
FROM ctsalini
INNER JOIN ctplano ON ctsalini.id_plano = ctplano.id_plano
ORDER BY ctplano.conta, ctsalini.cgccpf;
UNION
SELECT ctlancto.id_plano, ctplano.conta, ctlancto.cgccpf, ctplano.descrconta, 0 AS salini,
If(ctlancto.tipolancto='D',ctlancto.valor,0) AS debito,
If(ctlancto.tipolancto='C',ctlancto.valor,0) AS credito
FROM ctplano
INNER JOIN ctlancto ON ctplano.id_plano = ctlancto.id_plano;
SELECT ctsalini.id_plano, ctplano.conta, ctsalini.cgccpf, ctplano.descrconta, ctsalini.valor AS salini, 0 AS debito, 0 AS credito
FROM ctsalini
INNER JOIN ctplano ON ctsalini.id_plano = ctplano.id_plano
ORDER BY ctplano.conta, ctsalini.cgccpf;
UNION
SELECT ctlancto.id_plano, ctplano.conta, ctlancto.cgccpf, ctplano.descrconta, 0 AS salini,
If(ctlancto.tipolancto='D',ctlancto.valor,0) AS debito,
If(ctlancto.tipolancto='C',ctlancto.valor,0) AS credito
FROM ctplano
INNER JOIN ctlancto ON ctplano.id_plano = ctlancto.id_plano;
23/06/2010 9:20pm
(~14 anos atrás)
(~14 anos atrás)
Marcos, mais uma vez obrigado pelo empenho. Agora tá dando
Incorrect usage of UNION and ORDER BY
Tem como eu fazer uma query com base em outra query?
Incorrect usage of UNION and ORDER BY
Tem como eu fazer uma query com base em outra query?
03/07/2010 4:34pm
(~14 anos atrás)
(~14 anos atrás)
Marcos, misteriosamente o script começou a funcionar. Obrigado pela dica!