AJUDA COM SELECT E INNER JOIN
Boa tarde, rapaziada
Montei um select com inner join e está acontecendo o seguinte:
Ao selecionar o dados da tabela com o select, retorna todos os dados da tabela que estão contidos no select. Até ai perfeito
.
Se insiro na tabela dados com código superior, aos dados que retornaram com o select, também funciona perfeitamente, mas se insiro na tabela algum dado com código menor que os dados do último select só retorna, ao selecionar os dados com o select, os dados que tiverem um código menor que o código do último select, exemplo
código 1 - funciona
código 2 - funciona
código 10 - funciona
código 7 - só retorna os três primeiro códigos
código 11 - funciona
código 6 - só retorna os códigos 1,2, 10 e 11.
Segue o código para análise:
Já tentei com While e Do While e o resultado é o mesmo.
Se alguém puder me ajudar, agradeço desde já.
Montei um select com inner join e está acontecendo o seguinte:
Ao selecionar o dados da tabela com o select, retorna todos os dados da tabela que estão contidos no select. Até ai perfeito
.
Se insiro na tabela dados com código superior, aos dados que retornaram com o select, também funciona perfeitamente, mas se insiro na tabela algum dado com código menor que os dados do último select só retorna, ao selecionar os dados com o select, os dados que tiverem um código menor que o código do último select, exemplo
código 1 - funciona
código 2 - funciona
código 10 - funciona
código 7 - só retorna os três primeiro códigos
código 11 - funciona
código 6 - só retorna os códigos 1,2, 10 e 11.
Segue o código para análise:
Private Sub selProdComp()
Dim sqlCon As New SqlConnection(strCmd)
Dim strSql As String = [Ô]SELECT C.CodProdComp, C.ProdComp, C.QtdeProdComp, C.ValorProdComp, C.CodProduto, [Ô] & _
[Ô]P.idProdutos, P.NomeProduto, P.PrecoVista [Ô] & _
[Ô]FROM TB_ProdutoComposto C [Ô] & _
[Ô]INNER JOIN TB_Produtos P ON C.CodProduto = P.idProdutos [Ô] & _
[Ô]WHERE C.CodProduto = [Ô] & txtIdProdutos.Text & [Ô][Ô] & _
[Ô]GROUP BY C.CodProdComp, C.ProdComp, C.QtdeProdComp, C.ValorProdComp, C.CodProduto, P.idProdutos, P.NomeProduto, P.PrecoVista [Ô] & _
[Ô]ORDER BY C.CodProduto ASC[Ô]
Dim sqlCmd As New SqlCommand(strSql, sqlCon)
Dim dr As SqlDataReader
sqlCmd.Connection.Open()
dr = sqlCmd.ExecuteReader
Do While (dr.Read)
Dim lvItem As New ListViewItem(New String() {dr.GetValue(0).ToString, dr.GetString(1).ToString, dr.GetInt32(2).ToString, dr.GetDecimal(3).ToString([Ô]N[Ô], nfi)})
frmProdutoComposto.listProdutos.Items.Add(lvItem)
frmProdutoComposto.txtIdProdutos.Text = dr([Ô]idProdutos[Ô]).ToString
frmProdutoComposto.txtNomeProduto.Text = dr([Ô]NomeProduto[Ô]).ToString
frmProdutoComposto.txtValorProd.Text = dr([Ô]PrecoVista[Ô]).ToString
Loop
If frmProdutoComposto.txtIdProdutos.Text = String.Empty Then
frmProdutoComposto.txtIdProdutos.Text = txtIdProdutos.Text
frmProdutoComposto.txtNomeProduto.Text = txtNomeProduto.Text
frmProdutoComposto.txtValorProd.Text = txtPrecoVista.Text
End If
somarProduto()
dr.Close()
sqlCon.Close()
frmProdutoComposto.ShowDialog()
End Sub
Já tentei com While e Do While e o resultado é o mesmo.
Se alguém puder me ajudar, agradeço desde já.
Mas vc viu se nessa parte
O c.codproduto 7 e 6 existem em p.idprodutos? Inner join so mostra resultados q atendam os 2, caso queira mostrar mesmo sem correspondente precisa usar left ou right join
C.CodProduto = P.idProdutos [Ô] & _
[Ô]WHERE C.CodProduto = [Ô] & txtIdProdutos.Text & [Ô][Ô] & _
O c.codproduto 7 e 6 existem em p.idprodutos? Inner join so mostra resultados q atendam os 2, caso queira mostrar mesmo sem correspondente precisa usar left ou right join
Tópico encerrado , respostas não são mais permitidas