VIEW/SELECT COM MULTIPLAS TABELAS [Ô]5+[Ô]
Olá estou com um problema na hora de criar uma view com mais de 2 tabelas
eu tenho :
[txt-color=#e80000] Tabela1 , Tabela2 ,Tabela3 ,Tabela4 ,Tabela5 [/txt-color]
Todas essas tabelas tem os seguintes campos em comum, [txt-color=#0000f0] CODIGO,QUANTIDADE, PRECO,DATA [/txt-color]
No caso minha intenção era fazer uma view com essas tabelas
Ou
Um select das 5 de uma vez só
Isso seria possivel ? andei fuçando no google mas nao achei nada que eu entedesse muito bem ou que funcionasse desse jeito que estou descrevendo
Alguma ideia ?
t+++
PS.: uso VB6 + Firebird
eu tenho :
[txt-color=#e80000] Tabela1 , Tabela2 ,Tabela3 ,Tabela4 ,Tabela5 [/txt-color]
Todas essas tabelas tem os seguintes campos em comum, [txt-color=#0000f0] CODIGO,QUANTIDADE, PRECO,DATA [/txt-color]
No caso minha intenção era fazer uma view com essas tabelas
Ou
Um select das 5 de uma vez só
Isso seria possivel ? andei fuçando no google mas nao achei nada que eu entedesse muito bem ou que funcionasse desse jeito que estou descrevendo
Alguma ideia ?
t+++
PS.: uso VB6 + Firebird
BADJECO,
A melhor solução é juntar tudo em um SELECT único.
As tabelas tem chaves em comum? Tipo Primary Key e Foreign Key?
Se tiver use um SELECT com o [Ô]INNER JOIN[Ô].
Se não tiver então faça um [Ô]UNION[Ô] para juntar os campos em um único resultset.
[][ô]s,
Tunusat.
A melhor solução é juntar tudo em um SELECT único.
As tabelas tem chaves em comum? Tipo Primary Key e Foreign Key?
Se tiver use um SELECT com o [Ô]INNER JOIN[Ô].
Se não tiver então faça um [Ô]UNION[Ô] para juntar os campos em um único resultset.
[][ô]s,
Tunusat.
Sera que se eu mostrar os selects que eu dou individualmente ,voce me daria uma forca na uniao ?
porque eu notei um [Ô]problema[Ô] aqui agora
Algumas dessas tabelas eu tenho que fazer mais de 1 select por causa de um campo [Ô]status[Ô] nelas ,
exemplo ,
select X,Y,Z from TABELA 1 where status =[txt-color=#e80000] [ô]1[ô] [/txt-color] and codigo =[ô]x[ô] and data between [ô]x[ô] and [ô]x[ô]
select X,Y,Z from TABELA 1 where status =[txt-color=#e80000] [ô]2[ô] [/txt-color] and codigo =[ô]x[ô] and data between [ô]x[ô] and [ô]x[ô]
To tentando o inner aqui mesmo como voce tinha me explicado em topicos passados mas com esse novo [Ô]problema[Ô] ai que eu citei eu dei uma engasgada aqui
Pelo que eu sei nao usa Primary Key e Foreign Key não são so compos com informaçoes/nomes em comum: CODIGO,QUANTIDADE, PRECO,DATA
Na verdade , Primary Key seria um campo de id , mas eles sao diferentes de tabela pra tabela, sao auto encrementados.
porque eu notei um [Ô]problema[Ô] aqui agora
Algumas dessas tabelas eu tenho que fazer mais de 1 select por causa de um campo [Ô]status[Ô] nelas ,
exemplo ,
select X,Y,Z from TABELA 1 where status =[txt-color=#e80000] [ô]1[ô] [/txt-color] and codigo =[ô]x[ô] and data between [ô]x[ô] and [ô]x[ô]
select X,Y,Z from TABELA 1 where status =[txt-color=#e80000] [ô]2[ô] [/txt-color] and codigo =[ô]x[ô] and data between [ô]x[ô] and [ô]x[ô]
To tentando o inner aqui mesmo como voce tinha me explicado em topicos passados mas com esse novo [Ô]problema[Ô] ai que eu citei eu dei uma engasgada aqui
Pelo que eu sei nao usa Primary Key e Foreign Key não são so compos com informaçoes/nomes em comum: CODIGO,QUANTIDADE, PRECO,DATA
Na verdade , Primary Key seria um campo de id , mas eles sao diferentes de tabela pra tabela, sao auto encrementados.
BADJECO,
Claro! As colunas da cláusula SELECT precisam ser as mesmas, mas a cláusula WHERE pode ser diferente, não tem problema.
Mas dá uma estudada nos operadores UNION e UNION ALL... veja os exemplos:
====================================
SQL UNION Operator
http://www.w3schools.com/sql/sql_union.asp
====================================
SQL: Utilizando o Operador UNION e UNION ALL
http://www.linhadecodigo.com.br/artigo/945/sql-utilizando-o-operador-union-e-union-all.aspx#ixzz3jMbCbuQ3
====================================
UNION (Transact-SQL)
https://msdn.microsoft.com/en-us/library/ms180026.aspx
====================================
SQL: UNION Operator
http://www.techonthenet.com/sql/union.php
====================================
SQL - UNIONS CLAUSE
http://www.tutorialspoint.com/sql/sql-unions-clause.htm
====================================
Veja também:
====================================
Entendendo EXCEPT, INTERSECT e UNION do SQL
https://sqlfromhell.wordpress.com/2013/07/05/entendendo-except-intersect-e-union-do-sql/
====================================
SQL > Comandos SQL > Union
http://www.1keydata.com/pt/sql/sql-union.php
====================================
SQL > Linguagem SQL avançada > Union All
http://www.1keydata.com/pt/sql/sql-union-all.php
====================================
Operações SET (SQL)
https://pt.wikipedia.org/wiki/Opera%C3%A7%C3%B5es_SET_(SQL)
====================================
[][ô]s,
Tunusat.
Claro! As colunas da cláusula SELECT precisam ser as mesmas, mas a cláusula WHERE pode ser diferente, não tem problema.
Mas dá uma estudada nos operadores UNION e UNION ALL... veja os exemplos:
====================================
SQL UNION Operator
http://www.w3schools.com/sql/sql_union.asp
====================================
SQL: Utilizando o Operador UNION e UNION ALL
http://www.linhadecodigo.com.br/artigo/945/sql-utilizando-o-operador-union-e-union-all.aspx#ixzz3jMbCbuQ3
====================================
UNION (Transact-SQL)
https://msdn.microsoft.com/en-us/library/ms180026.aspx
====================================
SQL: UNION Operator
http://www.techonthenet.com/sql/union.php
====================================
SQL - UNIONS CLAUSE
http://www.tutorialspoint.com/sql/sql-unions-clause.htm
====================================
Veja também:
====================================
Entendendo EXCEPT, INTERSECT e UNION do SQL
https://sqlfromhell.wordpress.com/2013/07/05/entendendo-except-intersect-e-union-do-sql/
====================================
SQL > Comandos SQL > Union
http://www.1keydata.com/pt/sql/sql-union.php
====================================
SQL > Linguagem SQL avançada > Union All
http://www.1keydata.com/pt/sql/sql-union-all.php
====================================
Operações SET (SQL)
https://pt.wikipedia.org/wiki/Opera%C3%A7%C3%B5es_SET_(SQL)
====================================
[][ô]s,
Tunusat.
[Ô] As colunas da cláusula SELECT precisam ser as mesmas[Ô]
Nesse caso voce diz o conteudo ,certo ? e nao o nome dos campos nas tebelas distintas correto ?
Pelo que eu percebi aqui , [Ô]acho que mergulhei tanto no codigo e nao percebi[Ô] , fui organizar aqui e vi que eu na verdade uso só 3 tabelas...
mas uma delas por exemplo eu faço o select [txt-color=#e80000] 5 [/txt-color] vezes apenas por causa do campo [Ô]Status[Ô] que eu havia falado. entao oque muda seria mesmo só o select
Na real oque ta pegando aqui e velocidade , eu preciso fazer todos esses selects entao ta demorando MUITO e como nas outras tabelas que eu uso aqui , que tem até mais conteudo vai que nem uma bala , achei que 1 select só ajudaria na velocidade.
Estou mandando ele em txt aqui.
ps.: Curti esse lance de Union.
Nesse caso voce diz o conteudo ,certo ? e nao o nome dos campos nas tebelas distintas correto ?
Pelo que eu percebi aqui , [Ô]acho que mergulhei tanto no codigo e nao percebi[Ô] , fui organizar aqui e vi que eu na verdade uso só 3 tabelas...
mas uma delas por exemplo eu faço o select [txt-color=#e80000] 5 [/txt-color] vezes apenas por causa do campo [Ô]Status[Ô] que eu havia falado. entao oque muda seria mesmo só o select
Na real oque ta pegando aqui e velocidade , eu preciso fazer todos esses selects entao ta demorando MUITO e como nas outras tabelas que eu uso aqui , que tem até mais conteudo vai que nem uma bala , achei que 1 select só ajudaria na velocidade.
Estou mandando ele em txt aqui.
ps.: Curti esse lance de Union.
BADJECO,
Não ... não exatamente o conteúdo, mas a estrutura (no caso abaixo [Ô]City[Ô] e [Ô]Country[Ô].
O exemplo dentro da W3Schools tem um [Ô]try it yourself[Ô] (tente você mesmo). Monte a estrutura abaixo lá e veja o que acontece... ele vai trazer como resposta 11 registros alemães e somente 1 brasileiro! KKKKK! São Paulo! KKKKK!
Number of Records: 12
Você pode fazer UNION de quantas tabelas quiser. Pode fazer várias vezes a cláusula UNION.
Estou sem tempo de de ver o arquivo anexo, mas na hora do almoço eu vejo.
Veja no exemplo abaixo que o nome das tabelas muda, a cláusula WHERE muda, mas o SELECT é igualzinho e funciona!!! Vai lá brincar!!! Abaixo com 2 [Ô]UNION ALL[Ô]:
Number of Records: 15
[][ô]s,
Tunusat.
Não ... não exatamente o conteúdo, mas a estrutura (no caso abaixo [Ô]City[Ô] e [Ô]Country[Ô].
O exemplo dentro da W3Schools tem um [Ô]try it yourself[Ô] (tente você mesmo). Monte a estrutura abaixo lá e veja o que acontece... ele vai trazer como resposta 11 registros alemães e somente 1 brasileiro! KKKKK! São Paulo! KKKKK!
SELECT City, Country FROM Customers
WHERE Country=[ô]Germany[ô]
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country=[ô]Brazil[ô]
ORDER BY City;
Number of Records: 12
Você pode fazer UNION de quantas tabelas quiser. Pode fazer várias vezes a cláusula UNION.
Estou sem tempo de de ver o arquivo anexo, mas na hora do almoço eu vejo.
Veja no exemplo abaixo que o nome das tabelas muda, a cláusula WHERE muda, mas o SELECT é igualzinho e funciona!!! Vai lá brincar!!! Abaixo com 2 [Ô]UNION ALL[Ô]:
SELECT City, Country FROM Customers
WHERE Country=[ô]Germany[ô]
UNION ALL
SELECT City, Country FROM Suppliers
WHERE City=[ô]São Paulo[ô]
ORDER BY City
UNION ALL
SELECT City, Country FROM Customers
WHERE Country=[ô]Argentina[ô]
ORDER BY City;
Number of Records: 15
[][ô]s,
Tunusat.
Eu vi la , to testando aqui , entao deu mais [Ô]ruim[Ô] ainda
oque eu posso fazer e usar o union nas tebelas identicas alterando só o where
Funcionaria nao ?
Mas acho que mesmo assim nao seria um ganho muito absurdo.
Minha intençao mesmo era tranformar esse muntueira de select em um só .ta hard... hahaha.
oque eu posso fazer e usar o union nas tebelas identicas alterando só o where
Funcionaria nao ?
Mas acho que mesmo assim nao seria um ganho muito absurdo.
Minha intençao mesmo era tranformar esse muntueira de select em um só .ta hard... hahaha.
BADJECO,
Então use a palavra-chave [Ô]INNER JOIN[Ô]:
=============================================
SQL INNER JOIN Keyword
http://www.w3schools.com/sql/sql_join_inner.asp
=============================================
Join (SQL)
https://en.wikipedia.org/wiki/Join_(SQL)
=============================================
Cláusulas INNER JOIN, LEFT JOIN e RIGHT JOIN - Associação de Tabelas: SQL Server 2008 - Parte 2
http://www.devmedia.com.br/clausulas-inner-join-left-join-e-right-join-associacao-de-tabelas-sql-server-2008-parte-2/18930
=============================================
Utilizando Joins em SQL
http://www.devmedia.com.br/utilizando-joins-em-sql/1071
=============================================
SQL Joins
http://www.w3schools.com/sql/sql_join.asp
=============================================
[][ô]s,
Tunusat.
Então use a palavra-chave [Ô]INNER JOIN[Ô]:
=============================================
SQL INNER JOIN Keyword
http://www.w3schools.com/sql/sql_join_inner.asp
=============================================
Join (SQL)
https://en.wikipedia.org/wiki/Join_(SQL)
=============================================
Cláusulas INNER JOIN, LEFT JOIN e RIGHT JOIN - Associação de Tabelas: SQL Server 2008 - Parte 2
http://www.devmedia.com.br/clausulas-inner-join-left-join-e-right-join-associacao-de-tabelas-sql-server-2008-parte-2/18930
=============================================
Utilizando Joins em SQL
http://www.devmedia.com.br/utilizando-joins-em-sql/1071
=============================================
SQL Joins
http://www.w3schools.com/sql/sql_join.asp
=============================================
[][ô]s,
Tunusat.
amigo por que você não faz com IN ?
select X,Y,Z from TABELA 1 where status In ([ô]1[ô],[ô]2[ô]) and codigo =[ô]x[ô] and data between [ô]x[ô] and [ô]x[ô]
Coloque virgula para separar os campos ex: (1,2,3,4...)
select X,Y,Z from TABELA 1 where status In ([ô]1[ô],[ô]2[ô]) and codigo =[ô]x[ô] and data between [ô]x[ô] and [ô]x[ô]
Coloque virgula para separar os campos ex: (1,2,3,4...)
No caso do inner ele me retornar resultados duplicados ,
Ele me mostra algo como na imagem,
Minha intençao seria ele mostrar [Ô] NAO SEI SE é POSSIVEL[Ô]
No caso se eu tenho 3 registros na [txt-color=#e80000] tabela2 [/txt-color] e 1 registro na [txt-color=#e80000] tabela1 [/txt-color]
TABELA 1 / TABELA 2
CODIGO QTD DATA / QTD2 - DATA2
KIT 08 BCO - 8 - 22/01/2014 - NULL - NULL
KIT 08 BCO - NULL - NULL - 7 - 23/01/2014
KIT 08 BCO - NULL - NULL - 6 - 24/01/2014
KIT 08 BCO - NULL - NULL - 5 - 25/01/2014
Algo desse tipo acima
Ele me mostra algo como na imagem,
Minha intençao seria ele mostrar [Ô] NAO SEI SE é POSSIVEL[Ô]
No caso se eu tenho 3 registros na [txt-color=#e80000] tabela2 [/txt-color] e 1 registro na [txt-color=#e80000] tabela1 [/txt-color]
TABELA 1 / TABELA 2
CODIGO QTD DATA / QTD2 - DATA2
KIT 08 BCO - 8 - 22/01/2014 - NULL - NULL
KIT 08 BCO - NULL - NULL - 7 - 23/01/2014
KIT 08 BCO - NULL - NULL - 6 - 24/01/2014
KIT 08 BCO - NULL - NULL - 5 - 25/01/2014
Algo desse tipo acima
Eu pensei melhor aqui , e estou pensando em fazer uma trigger nessas tabelas ,pra juntar a infos que preciso em outra Tabela unificadando essas informaçoes
só que sei menos ainda como isso funciona ,
Li entre Trigger e Stored procedure , mas ainda nao sei qual seria melhor ,ou como realmente funcionaria
Dicas ?
só que sei menos ainda como isso funciona ,
Li entre Trigger e Stored procedure , mas ainda nao sei qual seria melhor ,ou como realmente funcionaria
Dicas ?
Tópico encerrado , respostas não são mais permitidas