VIEW/SELECT COM MULTIPLAS TABELAS [Ô]5+[Ô]

BADJECO 20/08/2015 10:21:59
#450255
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
TUNUSAT 20/08/2015 10:36:33
#450257
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.
BADJECO 20/08/2015 10:48:32
#450258
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.

TUNUSAT 20/08/2015 10:58:52
#450259
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.
BADJECO 20/08/2015 11:15:31
#450261
[Ô] 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.
TUNUSAT 20/08/2015 11:30:35
#450263
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!

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.
BADJECO 20/08/2015 11:37:46
#450264
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.
TUNUSAT 20/08/2015 11:41:55
#450265
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.
LUIZCOMINO 20/08/2015 12:32:47
#450268
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...)
BADJECO 21/08/2015 09:04:58
#450305
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
BADJECO 21/08/2015 11:16:24
#450311
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 ?
Tópico encerrado , respostas não são mais permitidas