SELECT EM 2 TABELAS

ADHEL 29/10/2010 08:58:28
#356238
Pessoal bom dia
Mais uma vez recorro a vossa ajuda

Preciso que o resultado de uma consulta em duas tabelas popule um datagrid
NÃO SEI FAZER,já li ,reli e está além das minhas condições.
Tenho uma tabela de Funcionários
Tenho uma tabela de Vales

Vou postar duas querys

sqlSelect = [Ô]SELECT Funcionario,Sum(Valor)as Valor From Vales WHERE Data between [ô][Ô] & Format(DTPicker1.Value, [Ô]yyyy-MM-dd[Ô]) & [Ô][ô] and [ô][Ô] & Format(DTPicker2.Value, [Ô]yyyy-MM-dd[Ô]) & [Ô][ô]GROUP BY Funcionario[Ô]
Comando = New MySqlCommand(sqlSelect, Conexao)

da = New MySqlDataAdapter(sqlSelect, Conexao)
ds = New DataSet
da.Fill(ds, [Ô]Vales[Ô])

With dgvConsulta
.DataSource = ds.Tables([Ô]Vales[Ô])
.Columns(0).Width = 450
.Columns(1).Width = 100
End With
Está query acima está perfeita



E está query também
sqlSelect = [Ô]SELECT Funcionario,Salario From Funcionarios[Ô]
Comando = New MySqlCommand(sqlSelect, Conexao)
da = New MySqlDataAdapter(sqlSelect, Conexao)
ds = New DataSet
da.Fill(ds, [Ô]Funcionarios[Ô])

With dgvConsulta
.DataSource = ds.Tables([Ô]Funcionarios[Ô])
.Columns(0).Width = 450
.Columns(1).Width = 100
End With


Precisava juntar essas duas querys
Para que saísse assim no datagrid

Funcionario Salario Vales

João 1000 250
Mario 1500 300

Onde Funcionario e Salário saísse da tabela Funcionarios
E vales saísse da tabela Vales

Espero que tenha sido claro
Qualquer informação será de grande ajuda.
Obrigado a todos





PEGUDO 29/10/2010 10:57:52
#356256
Resposta escolhida
Cara, você quer só popular o GridView com os dados da sua consulta ou criar um outra consulta que busque os dados das duas tabelas?
ADHEL 29/10/2010 11:15:43
#356261
Preciso criar uma query que consulte duas tabelas e jogue no datagrid
Tabela 1 nomeada de FUNCIONARIOS
Dela, eu extraía O Nome e o Salário do Funcionário
Tabela 2 nomeada de VALES
Dela, eu extraía os Vales do Funcionário.(Nessa parte eu utilizaria o sum,para somar os vales referente a data.
A parte do SUM() já não é o problema.
Gostaria de visualizar assim(Se for possível)

Funcionario Salario Vales

João 1000 250
Mario 1500 300

Obrigado pela atenção
PEGUDO 29/10/2010 11:30:19
#356264
Cara, vou te confessar que sou meio fraco com o gridview, eu utilizo mais é o ListView, mas a string para buscar os dados entre duas tabelas, aqui na empresa, eu utilizei esta:

SELECT tbloperadores.nome,tbloperadores.area,tblhorarios.'1' FROM tbloperadores Inner Join tblhorarios ON tbloperadores.codoperador = tblhorarios.codoperador WHERE
tbloperadores.codoperador = InCodigo

Onde:
[Ô][txt-color=#0000f0]tbloperadores[/txt-color][Ô] é a minha primeira tabela;
[Ô][txt-color=#0000f0]tblhorarios[/txt-color][Ô], a segunda;
[Ô][txt-color=#0000f0]nome[/txt-color][Ô] é o campo onde estão os nomes dos funcionários;
[Ô][txt-color=#0000f0]area[/txt-color][Ô] é o setor;
[Ô][txt-color=#0000f0]1[/txt-color][Ô] é a coluna do horários de entrada.

Se você reparar, eu utilizei o [Ô][txt-color=#0000f0]Inner Join[/txt-color][Ô] para juntar as duas tabelas na consulta;
Depois eu utilizei o [Ô][txt-color=#0000f0]ON[/txt-color][Ô] para dizer à string de conexão que o valor da coluna [Ô][txt-color=#0000f0]codoperador[/txt-color][Ô] da tabela [Ô][txt-color=#0000f0]tbloperadores[/txt-color][Ô] deve ser o mesmo da coluna [Ô][txt-color=#0000f0]codoperador[/txt-color][Ô] da tabela [Ô][txt-color=#0000f0]tblhorarios[/txt-color][Ô];
Por fim, eu utilizei a cláusula [Ô][txt-color=#0000f0]WHERE[/txt-color][Ô] para filtrar código do operador, da tabela [Ô][txt-color=#0000f0]tbloperadores[/txt-color][Ô], pelo valor da variável [Ô][txt-color=#0000f0]InCodigo[/txt-color][Ô].

Troque as minhas tabelas pelas suas e os campos pelos das suas tabelas.
Eu só não coloquei, neste exemplo, as variáveis de data, mas isso você tem total competência para fazer.
se for utilizar este exemplo, lembre-se de fazer backup da sua tabela primeiro ok?

Desculpe não poder te ajudar mais.
abraços.
ADHEL 29/10/2010 11:36:51
#356267
Pegudo
Vou fazer o que me recomendou e depois posto algo
Por hora fico muito agradecido
Até
ADHEL 12/11/2010 10:40:00
#357289
Pegudo desculpe a demora
Consegui de outra maneira.
Mas seu exemplo vai ser ótimo em outra questão.
Muito obrigado
Tópico encerrado , respostas não são mais permitidas