Jump to content
San Roman

Select com left join em três tabelas

Recommended Posts

San Roman

Boa tarde amigos...

Estou tentando criar um select para carregar dados de três tabelas como segue abaixo:

 Try
                Using strCom As FbCommand = New FbCommand("SELECT a.idCategoria, a.Data, a.Categoria, b.SubCategoria, c.Itens, a.Tipo  " & _
                                                          "FROM tbCategoria a " & _
                                                          "LEFT JOIN tbSubcategoria b ON (a.Categoria = b.Categoria) " & _
                                                          "LEFT JOIN tbItens c ON (a.Categoria = c.Categoria) " & _
                                                          "GROUP BY a.Categoria, b.SubCategoria, c.Itens, a.Tipo, a.idCategoria, a.Data " & _
                                                          "ORDER BY a.Categoria, b.SubCategoria, c.Itens ASC", con)

                    Using da As FbDataAdapter = New FbDataAdapter(strCom)

                        Dim dt As DataTable = New DataTable("Receita")
                        Dim ds As DataSet = New DataSet

                        dgvFrmCategoria.Columns.Clear()
                        da.Fill(ds)

O problema e que esta duplicando dados, por exemplo

Tabela A  -  Tabela B   -   Tabela C

Mercado   -   Arroz       -   Tipo 1

Mercado   -   Arroz       -   Tipo 2

Saúde     -   Mensal

O resultado deveria parecer como acima, mas está aparecendo assim:

Tabela A  -  Tabela B   -   Tabela C

Mercado   -   Arroz       -   Tipo 1

Mercado   -   Arroz       -   Tipo 2

Mercado   -   Arroz       -   Tipo 1

Mercado   -   Arroz       -   Tipo 2

Saúde     -   Mensal

Duplica se tiver mais de um item na tabela B e também na tabela C

Desde já agradeço a ajuda de todos.

Share this post


Link to post
Share on other sites
Gilinaz
On 8/8/2017 at 7:17 PM, San Roman said:

Boa tarde amigos...

Estou tentando criar um select para carregar dados de três tabelas como segue abaixo:


 Try
                Using strCom As FbCommand = New FbCommand("SELECT a.idCategoria, a.Data, a.Categoria, b.SubCategoria, c.Itens, a.Tipo  " & _
                                                          "FROM tbCategoria a " & _
                                                          "LEFT JOIN tbSubcategoria b ON (a.Categoria = b.Categoria) " & _
                                                          "LEFT JOIN tbItens c ON (a.Categoria = c.Categoria) " & _
                                                          "GROUP BY a.Categoria, b.SubCategoria, c.Itens, a.Tipo, a.idCategoria, a.Data " & _
                                                          "ORDER BY a.Categoria, b.SubCategoria, c.Itens ASC", con)

                    Using da As FbDataAdapter = New FbDataAdapter(strCom)

                        Dim dt As DataTable = New DataTable("Receita")
                        Dim ds As DataSet = New DataSet

                        dgvFrmCategoria.Columns.Clear()
                        da.Fill(ds)

O problema e que esta duplicando dados, por exemplo

Tabela A  -  Tabela B   -   Tabela C

Mercado   -   Arroz       -   Tipo 1

Mercado   -   Arroz       -   Tipo 2

Saúde     -   Mensal

O resultado deveria parecer como acima, mas está aparecendo assim:

Tabela A  -  Tabela B   -   Tabela C

Mercado   -   Arroz       -   Tipo 1

Mercado   -   Arroz       -   Tipo 2

Mercado   -   Arroz       -   Tipo 1

Mercado   -   Arroz       -   Tipo 2

Saúde comprar Viagra pela internet sem receita  -   Mensal

Duplica se tiver mais de um item na tabela B e também na tabela C

Desde já agradeço a ajuda de todos.

Apenas o que você precisa!

Obrigado!

Share this post


Link to post
Share on other sites
M6

Isso cheira-me a que o campo "data" está a fazer a tal "duplicação".
Experimenta correr a query sem o campo "data" (tanto no select como no group by).


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.