Tenho uma tabela onde os campos estão da seguinte forma:
Campo1 campo2 campo3
Item1 item1id descriçao1
Item2 item2id descriçao2
Item1 item1id descriçao1
E preciso fazer uma consulta onde me retorne:
Item1 item2
item1id item2id
descriçao1 descriçao2
Eu já criei a seguinte query:
SET @FILIAL=1,@FICHARIO = 271;
SELECT
DISTINCT id.cardId id,
numRnc.COD_VALOR numRnc,
WKDef.COD_VALOR WKDef,
dataAbertura.COD_VALOR dataAbertura,
EmitenteProduto.COD_VALOR EmitenteProduto,
obs.COD_VALOR obs,
dataFechamento.COD_VALOR dataFechamento
FROM(
SELECT
DISTINCT f.NR_FICHA cardId,
f.NR_VERSAO cardVersion,
f.COD_VALOR
FROM
ficha f
WHERE
f.NR_FICHARIO = @FICHARIO
AND f.COD_EMPRESA = @FILIAL
AND f.NR_VERSAO = (
SELECT
MAX(m.NR_VERSAO)
FROM
ficha m
WHERE
m.NR_FICHARIO = @FICHARIO
AND m.COD_EMPRESA = @FILIAL
AND m.NR_FICHA = f.NR_FICHA
)
AND (SELECT
`VERSAO_ATIVA`+0
FROM
`documento` d
WHERE
d.`NR_DOCUMENTO` = f.NR_FICHA
AND d.`COD_EMPRESA` = @FILIAL
AND d.`NR_VERSAO` = f.NR_VERSAO)
)id,
(
SELECT
COD_VALOR,
NR_FICHA
FROM
ficha fN
WHERE
fN.cod_campo = 'numRnc'
AND fN.NR_FICHARIO = @FICHARIO
AND fN.COD_EMPRESA = @FILIAL
) numRnc,
(
SELECT
COD_VALOR,
NR_FICHA
FROM
ficha fN
WHERE
fN.cod_campo = 'WKDef'
AND fN.NR_FICHARIO = @FICHARIO
AND fN.COD_EMPRESA = @FILIAL
)WKDef,
(
SELECT
COD_VALOR,
NR_FICHA
FROM
ficha fN
WHERE
fN.cod_campo = 'dataAbertura'
AND fN.NR_FICHARIO = @FICHARIO
AND fN.COD_EMPRESA = @FILIAL
) dataAbertura,
(
SELECT
COD_VALOR,
NR_FICHA
FROM
ficha fN
WHERE
fN.cod_campo = 'EmitenteProduto'
AND fN.NR_FICHARIO = @FICHARIO
AND fN.COD_EMPRESA = @FILIAL
) EmitenteProduto,
(
SELECT
COD_VALOR,
NR_FICHA
FROM
ficha fN
WHERE
fN.cod_campo = 'obs'
AND fN.NR_FICHARIO = @FICHARIO
AND fN.COD_EMPRESA = @FILIAL
)obs,
(
SELECT
COD_VALOR,
NR_FICHA
FROM
ficha fN
WHERE
fN.cod_campo = 'dataFechamento'
AND fN.NR_FICHARIO = @FICHARIO
AND fN.COD_EMPRESA = @FILIAL
)dataFechamento
WHERE
WKDef.COD_VALOR = 'rncFornecedor'
AND numRnc.NR_FICHA = id.cardId
AND WKDef.NR_FICHA = id.cardId
AND dataAbertura.NR_FICHA = id.cardId
AND EmitenteProduto.NR_FICHA = id.cardId
AND obs.NR_FICHA = id.cardId
AND dataFechamento.NR_FICHA = id.cardId
Mas a cada novo item que preciso adicionar ele faca muito mais lenta.
Se houver uma outra forma de fazer isso e alguém puder me ajudar agradeço.
Pergunta
flaviozantut
Bom dia.
Tenho uma tabela onde os campos estão da seguinte forma:
Campo1 campo2 campo3
Item1 item1id descriçao1
Item2 item2id descriçao2
Item1 item1id descriçao1
E preciso fazer uma consulta onde me retorne:
Item1 item2
item1id item2id
descriçao1 descriçao2
Eu já criei a seguinte query:
Mas a cada novo item que preciso adicionar ele faca muito mais lenta.
Se houver uma outra forma de fazer isso e alguém puder me ajudar agradeço.
Editado por flaviozantutLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.