Montei um select das minhas tabelas para um relatorio e não estou conseguindo associar o campo cat da tabela de movimento com o campo id e nome da tabela categoria.
quando faz um insert no banco em vez de cadastrar o nome do produto ele cadastra o id até ai tudo bem, só que no relatorio preciso que ele pegue esse id pesquise na tabela de categoria e traga o nome.
Montei o select conforme abaixo, mas não deu certo...poderiam ajudar por favor?
SELECT cat, id, nome, (
SELECT SUM( valor )
FROM lc_movimento a
WHERE tipo =1
AND a.cat = b.cat
)tipo_1, (
SELECT SUM( valor )
FROM lc_movimento a
WHERE tipo =2
AND a.cat = b.cat
)tipo_2, (
SELECT SUM( valor )
FROM lc_movimento a
WHERE tipo =0
AND a.cat = b.cat
)tipo_0, (
SELECT SUM( tipo_1 - tipo_2 - tipo_0 )
)TOTAL
FROM (
SELECT DISTINCT x.cat, y.id, z.nome
FROM lc_movimento x, lc_cat y, lc_cat z
WHERE x.cat = y.id
GROUP BY y.id, z.nome ASC
)b
Resultado: pode ver que ele mostra varias vezes a mesma cat, mesmo id mas com nomes diferentes.
cat id nome tipo_1 tipo_2 tipo_0 TOTAL
1 1 ãçõà NULL 10 10 NULL
1 1 teste 1 NULL 10 10 NULL
1 1 teste 3 NULL 10 10 NULL
2 2 ãçõà NULL NULL 1 NULL
2 2 teste 1 NULL NULL 1 NULL
2 2 teste 3 NULL NULL 1 NULL
3 3 ãçõà NULL NULL 2 NULL
3 3 teste 1 NULL NULL 2 NULL
3 3 teste 3 NULL NULL 2 NULL
O esperado seria assim:
cat id nome
1 1 ãçõà
2 2 teste 2
3 3 teste 3
Minhas tabelas são:
lc_movimento onde o campo cat corresponde o id do produto
lc_cat onde consta o id do item e o campo nome do produto