AJUDA COM SELECT 2 TABELAS 1 LISTVIEW

KURTGU 06/07/2015 10:38:13
#448495
AJUDA COMO DA UM SELECT EM DUAS TABELAS EXEMPLO

1- TABELA COM OS DADOS DO CADASTRO VISITA
2- TABELA COM OS DADOS DO RETORNO VISITA

PREENCHO UM LISTVIEW COM A PRIMEIRA TABELA COMO FACO PRA ADICIONAR NO RESTANTE DAS COLUNAS OS DADOS DA 2 TABELA?

[ô]AQUI PREENCHO A LISTVIEW COM OS DADOS DA 1 TABELA....
myCMD = New MySql.Data.MySqlClient.MySqlCommand(([Ô]Select * From tb_remocao Where unidadereferencia=[ô][Ô] & Principal.lbllocal.Text & [Ô][ô][Ô]), myCON)
myDRR = myCMD.ExecuteReader()
If myDRR.HasRows = True Then
Do While myDRR.Read()
If myDRR.Item([Ô]Status[Ô]).ToString = [Ô]Aguardando[Ô] Then
Dim dt As DateTime = Convert.ToDateTime(myDRR.Item([Ô]datanascimento[Ô]))
Dim ts As TimeSpan = DateTime.Today.Subtract(dt)
Dim new_item As New _
ListViewItem(myDRR.Item([Ô]id[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]nomepaciente[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]numerocartaosus[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datanascimento[Ô]).ToString)
new_item.SubItems.Add((New DateTime(ts.Ticks).ToString([Ô]yy[Ô]) & [Ô] anos[Ô]))
new_item.SubItems.Add(myDRR.Item([Ô]rua[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]bairro[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]unidadereferencia[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datatrasferencia[Ô]).ToString)
listadeTransferencias.ListView1.Items.Add(new_item)
End if
MESTRE 06/07/2015 11:45:17
#448503
Cara pensei de um jeito, nao sei se é da melhor forma mais acho que dá certo dessa maneira

utilizando Array no seu 2 select e concatenando com o valor da variável anterior

http://stackoverflow.com/questions/3355655/how-do-i-put-an-arraylist-in-a-listbox

FFCOUTO 06/07/2015 11:56:30
#448504
Você pode usar um LEFT JOIN e buscar os dados no mesmo Select.
Com isso, basta verificar se esses dados não são nulos e atribuir a coluna correspondente.
Poste a estrutura das tabelas, assim fica mais facil de ajudar.
MESTRE 06/07/2015 13:48:28
#448509
Resposta escolhida
usando Left Join como o FCouto disse funciona também ai concatena as string e da certo..

KURTGU 06/07/2015 13:49:23
#448510
FFCOUTO Nao manjo muito de banco, quem fazia isso pra mim era outra pessoa agora estou fazendo tudo sozinho entao estou lendo sobre ainda....mais minha tabela esta desta forma sei que tem muito o que melhorar maissssss....kkkk
KURTGU 06/07/2015 13:51:29
#448511
Na segunda tabela salvo o codvisita com os dados daquele paciente...que preenchido apos abertura da ficha do paciente por outro setor...

MESTRE 06/07/2015 15:36:44
#448518
Tente assim:

SELECT * FROM tb_remocao LEFT JOIN tb_retornovisita ON tb_remocao.codigo=tb_retornovisita.codigo WHERE tb_remocao.unidadereferencia=[ô][Ô] & Principal.lbllocal.Text & [Ô][ô][Ô]


No campo codigo após o ON coloque os campos que se coincidem nas duas tables.
FFCOUTO 06/07/2015 15:38:35
#448519
O select ficaria assim:
SELECT t1.*, t2.* FROM pacientes AS t1 INNER JOIN visitas AS t2 ON t1.id = t2.codigo;


Depois basta preencher as colunas com os campos correspondentes.
new_item.SubItems.Add(myDRR.Item(campo).ToString)
KURTGU 07/07/2015 08:33:19
#448539
FFCOUTO
O seu Nem erro ele da...

Mestre fiz da forma que voce me falou mais, nao obtive resultado recebi a seguinte mensagem....
[txt-color=#e80000]invalid attempt to access a field before calling read()[/txt-color]

OBS IMPORTANTE COMO NUNCA TINHA USADO ISTO ENTAO NAO SEI SE ESTOU FAZENDO DA FORMA CORRETA SEGUE AQUI A SUB INTEIRA....

Public Sub Listar()
Conectar()
listadeTransferencias.ListView1.Items.Clear()
listadeTransferencias.ListView2.Items.Clear()
listadeTransferencias.ListView3.Items.Clear()
myCMD = New MySql.Data.MySqlClient.MySqlCommand([Ô]Select * from tb_remocao order by id[Ô], myCON)
myDRR = myCMD.ExecuteReader()
If myDRR.HasRows = True Then
Do While myDRR.Read()
[txt-color=#e80000] If myDRR.Item([Ô]Status[Ô]).ToString = [Ô]Aguardando[Ô] [/txt-color]Then
Dim dt As DateTime = Convert.ToDateTime(myDRR.Item([Ô]datanascimento[Ô]))
Dim ts As TimeSpan = DateTime.Today.Subtract(dt)
Dim new_item As New _
ListViewItem(myDRR.Item([Ô]id[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]nomepaciente[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]numerocartaosus[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datanascimento[Ô]).ToString)
new_item.SubItems.Add((New DateTime(ts.Ticks).ToString([Ô]yy[Ô]) & [Ô] anos[Ô]))
new_item.SubItems.Add(myDRR.Item([Ô]rua[Ô]).ToString & [Ô],Nº [Ô] & (myDRR.Item([Ô]numero[Ô]).ToString))
new_item.SubItems.Add(myDRR.Item([Ô]bairro[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]unidadereferencia[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datatrasferencia[Ô]).ToString)
listadeTransferencias.ListView1.Items.Add(new_item)
[txt-color=#e80000] ElseIf myDRR.Item([Ô]Status[Ô]).ToString = [Ô]Visita[Ô] [/txt-color]Then
Dim dt As DateTime = Convert.ToDateTime(myDRR.Item([Ô]datanascimento[Ô]))
Dim ts As TimeSpan = DateTime.Today.Subtract(dt)
Dim new_item As New _
ListViewItem(myDRR.Item([Ô]id[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]nomepaciente[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]numerocartaosus[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datanascimento[Ô]).ToString)
new_item.SubItems.Add((New DateTime(ts.Ticks).ToString([Ô]yy[Ô]) & [Ô] anos[Ô]))
new_item.SubItems.Add(myDRR.Item([Ô]rua[Ô]).ToString & [Ô],Nº [Ô] & (myDRR.Item([Ô]numero[Ô]).ToString))
new_item.SubItems.Add(myDRR.Item([Ô]bairro[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]unidadereferencia[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datatrasferencia[Ô]).ToString)
listadeTransferencias.ListView2.Items.Add(new_item)
[txt-color=#e80000] ElseIf myDRR.Item([Ô]Status[Ô]).ToString = [Ô]Finalizado[Ô][/txt-color] Then
Dim dt As DateTime = Convert.ToDateTime(myDRR.Item([Ô]datanascimento[Ô]))
Dim ts As TimeSpan = DateTime.Today.Subtract(dt)
Dim new_item As New ListViewItem(myDRR.Item([Ô]id[Ô]).ToString)
Conectar()
[txt-color=#e80000] myCMD = New MySql.Data.MySqlClient.MySqlCommand([Ô]SELECT * FROM tb_remocao LEFT JOIN tb_visita ON tb_remocao.codvisita=tb_visita.codigo WHERE tb_remocao.unidadereferencia=[ô][Ô] & Principal.lbllocal.Text & [Ô][ô][Ô], myCON)[/txt-color]
[txt-color=#e80000] myDRR = myCMD.ExecuteReader()[/txt-color] SEI QUE O ERRO ESTA NESTA LINHA POIS PRECISA SER ExecuteScalar
new_item.SubItems.Add(myDRR.Item([Ô]nomepaciente[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]numerocartaosus[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datanascimento[Ô]).ToString)
new_item.SubItems.Add((New DateTime(ts.Ticks).ToString([Ô]yy[Ô]) & [Ô] anos[Ô]))
new_item.SubItems.Add(myDRR.Item([Ô]rua[Ô]).ToString & [Ô],Nº [Ô] & (myDRR.Item([Ô]numero[Ô]).ToString))
new_item.SubItems.Add(myDRR.Item([Ô]bairro[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]unidadereferencia[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datatrasferencia[Ô]).ToString)
[txt-color=#e80000] new_item.SubItems.Add(myDRR.Item([Ô]1internacao[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]hipotesediagnostica[Ô]).ToString)[/txt-color]
listadeTransferencias.ListView3.Items.Add(new_item)
End If

listadeTransferencias.Label21.Text = listadeTransferencias.ListView1.Items.Count
listadeTransferencias.Label22.Text = listadeTransferencias.ListView2.Items.Count
listadeTransferencias.Label23.Text = listadeTransferencias.ListView3.Items.Count

Loop
End If
End Sub

Os dois ultimos items adicionado no status finalizado e da tabela_visita preechida apos a visita...
MESTRE 07/07/2015 09:30:23
#448540
KURTGU, põe no SELECT lá encima e ve se funciona...

aonde tá la encima
       myCMD = New MySql.Data.MySqlClient.MySqlCommand([Ô]Select * from tb_remocao order by id[Ô], myCON) 


você ja tá dando o select la encima na tb_remocao não precisa fazer isso pela 2 vez, coloca e tira o segundo select:

Public Sub Listar()
Conectar()
listadeTransferencias.ListView1.Items.Clear()
listadeTransferencias.ListView2.Items.Clear()
listadeTransferencias.ListView3.Items.Clear()
myCMD = New MySql.Data.MySqlClient.MySqlCommand([Ô]SELECT * FROM tb_remocao LEFT JOIN tb_visita ON tb_remocao.codvisita=tb_visita.codigo WHERE tb_remocao.unidadereferencia=[ô][Ô] & Principal.lbllocal.Text & [Ô][ô] ORDER BY tb_remocao.id[Ô], myCON)


KURTGU 08/07/2015 08:36:37
#448570
Mestre valeu cara Deu certo so tive que tirar a parte do Where.....Vlw mesmo....
Tópico encerrado , respostas não são mais permitidas