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: 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.