Usuário com melhor resposta
Me ajudem nesta Query

Pergunta
-
Olá,
Tenho 3 bancos de dados, suponhamos que sejam os bancos A, B e C que representam 3 depósitos, certo, em cada um desses bancos existe a tabela PRODUTOS e os nomes das colunas são iguais, agora suponhamos os valores das tabelas:
BANCO A - TABELA PRODUTOS
CÓDIGO ESTOQUE
AN-44 3
EX-510 5
SZ-720 4
ZW-987 0
BANCO B - TABELA PRODUTOS
CÓDIGO ESTOQUE
AN-44 10
ZW-987 1
BANCO C - TABELA PRODUTOS
CÓDIGO ESTOQUE
ZW-987 70
Vejam que apenas os depósitos A e B possuem o produto AN-44, já o C não possui, como eu faço para selecionar todos os produtos das 3 bases sem repetir nenhum código, sendo que tenho também que mostrar o estoque em cada depósito e uma outra coluna com o estoque total dos 3 depósitos somados.......
preciso gerar uma tabela, um select ou um único XML com essas informações! já tentei com o UNION mas não deu certo!
me ajudem por favor! abraços!
Respostas
-
Boa Tarde Thiago,
Entendo que sua necessidade deva ser muito urgente mas peço que poste sua dúvida em um único fórum. Postar nos três fóruns só irá descentralizar a discussão e além de dificultar a resposta acaba poluindo os demais fóruns. Peço que por favor exclua o seu post dos demais fóruns. Segue uma possível solução
Code SnippetCREATE
TABLE #tblA (CODIGO
ESTOQUE
INT)INSERT
INTO #tblA VALUES ('AN-44',3)INSERT
INTO #tblA VALUES ('EX-510',5)INSERT
INTO #tblA VALUES ('SZ-720',4)INSERT
INTO #tblA VALUES ('ZW-987',0)CREATE
TABLE #tblB (CODIGO
ESTOQUE
INT)INSERT
INTO #tblB VALUES ('AN-44',10)INSERT
INTO #tblB VALUES ('ZW-987',1)CREATE
TABLE #tblC (CODIGO
ESTOQUE
INT)INSERT
INTO #tblC VALUES ('ZW-987',70)SELECT
CODIGO,FROM
DROP
TABLE #tblADROP
TABLE #tblBDROP
TABLE #tblC[ ]s,
Gustavo
Todas as Respostas
-
Boa Tarde Thiago,
Entendo que sua necessidade deva ser muito urgente mas peço que poste sua dúvida em um único fórum. Postar nos três fóruns só irá descentralizar a discussão e além de dificultar a resposta acaba poluindo os demais fóruns. Peço que por favor exclua o seu post dos demais fóruns. Segue uma possível solução
Code SnippetCREATE
TABLE #tblA (CODIGO
ESTOQUE
INT)INSERT
INTO #tblA VALUES ('AN-44',3)INSERT
INTO #tblA VALUES ('EX-510',5)INSERT
INTO #tblA VALUES ('SZ-720',4)INSERT
INTO #tblA VALUES ('ZW-987',0)CREATE
TABLE #tblB (CODIGO
ESTOQUE
INT)INSERT
INTO #tblB VALUES ('AN-44',10)INSERT
INTO #tblB VALUES ('ZW-987',1)CREATE
TABLE #tblC (CODIGO
ESTOQUE
INT)INSERT
INTO #tblC VALUES ('ZW-987',70)SELECT
CODIGO,FROM
DROP
TABLE #tblADROP
TABLE #tblBDROP
TABLE #tblC[ ]s,
Gustavo
-
thiago,
Minha sugestão:
Code SnippetSELECT
ID_COD,SUM(ESTOQUE) AS TOTAL_ESTOQUE,
SUM(CASE ID_BANCO WHEN 'BANCO A' THEN ESTOQUE ELSE 0 END) TOTAL_BANCO_A,
SUM(CASE ID_BANCO WHEN 'BANCO B' THEN ESTOQUE ELSE 0 END) TOTAL_BANCO_B,
SUM(CASE ID_BANCO WHEN 'BANCO C' THEN ESTOQUE ELSE 0 END) TOTAL_BANCO_C
FROM
(SELECT ID_COD, ESTOQUE, 'BANCO A' ID_BANCO FROM BANCO_A
UNION ALL
SELECT ID_COD, ESTOQUE, 'BANCO B' ID_BANCO FROM BANCO_B
UNION ALL
SELECT ID_COD, ESTOQUE, 'BANCO C' ID_BANCO FROM BANCO_C) AS TMP
GROUP
BY ID_CODCode SnippetCREATE
TABLE BANCO_A(ID_COD char (10) NULL,
ESTOQUE int NULL
)
CREATE
TABLE BANCO_B(ID_COD char (10) NULL,
ESTOQUE int NULL
)
CREATE
TABLE BANCO_C(ID_COD char (10) NULL,
ESTOQUE int NULL
)
Não esqueça de marca a mensagem como "útil", caso tenha ajudado. -
-