× Linguagem de Programação ADVPL

Perguntas Sql com 3 tabelas

Mais
8 anos 2 meses atrás #31080 por diegoo_martins
Pessoal, bom dia.

Tenho uma consulta SQL que funciona perfeitamente com 2 tabelas. Preciso inserir a 3ª tabela SZ7 relacionando o campo Z7_NUM, como faço?

cQuery := "SELECT Z3_NUM,Z3_OF,Z3_CLIENTE,Z3_TPFRETE,Z3_NATUREZ,Z3_CONDPAG,Z3_TRANSP,Z3_PESOL,Z3_PBRUTO,"+;
"Z3_VOLUME1,Z3_FORNECE,Z3_SERVICO,Z3_QTDSERV,Z3_VLRSERV,Z3_UMSERV,Z3_ORDFABR, Z3_ESPECIE, Z3_LOCENTR, Z3_PEDCLIE, Z3_OBS,"+;
"Z4_PRODUTO,Z4_DESC,Z4_NUM,Z3_EMISSAO,Z4_ITEM,Z4_QTDVEN,Z4_VLRUNIT, Z4_UM, Z4_NFORI"
cQuery += " FROM " + RetSqlName("SZ3") + " SZ3 "
cQuery += " JOIN " + RetSqlName("SZ4") + " SZ4"
cQuery += " ON SZ3.Z3_NUM = SZ4.Z4_NUM"
cQuery += " WHERE SZ3.Z3_NUM BETWEEN '" + mv_par01 + "' AND '" + mv_par02 + "' "
cQuery += " AND SZ3.D_E_L_E_T_ = '' "
cQuery += " ORDER BY Z3_NUM"

TCQUERY cQuery NEW ALIAS "TRBSZ3"

cQuery := ChangeQuery(cQuery)

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 2 meses atrás #31082 por lalberto
Respondido por lalberto no tópico Sql com 3 tabelas
cQuery := "SELECT Z3_NUM,Z3_OF,Z3_CLIENTE,Z3_TPFRETE,Z3_NATUREZ,Z3_CONDPAG,Z3_TRANSP,Z3_PESOL,Z3_PBRUTO,"+;
"Z3_VOLUME1,Z3_FORNECE,Z3_SERVICO,Z3_QTDSERV,Z3_VLRSERV,Z3_UMSERV,Z3_ORDFABR, Z3_ESPECIE, Z3_LOCENTR, Z3_PEDCLIE, Z3_OBS,"+;
"Z4_PRODUTO,Z4_DESC,Z4_NUM,Z3_EMISSAO,Z4_ITEM,Z4_QTDVEN,Z4_VLRUNIT, Z4_UM, Z4_NFORI, Z7.... "
cQuery += " FROM " + RetSqlName("SZ3") + " SZ3 "
cQuery += " JOIN " + RetSqlName("SZ4") + " SZ4"
cQuery += " ON SZ4.Z4_FILIAL = " + xFilial("SZ4") + " AND SZ3.Z3_NUM = SZ4.Z4_NUM"
cQuery += " JOIN " + RetSqlName("SZ7") + " SZ7"
cQuery += " ON SZ7.Z7_FILIAL = " + xFilial("SZ7") + " AND SZ3.Z3_NUM = SZ7.Z7_NUM"
cQuery += " WHERE SZ3.Z3_NUM BETWEEN '" + mv_par01 + "' AND '" + mv_par02 + "' "
cQuery += " AND SZ3.D_E_L_E_T_ = '' "
cQuery += " AND SZ7.D_E_L_E_T_ = '' "
cQuery += " ORDER BY Z3_NUM"

TCQUERY cQuery NEW ALIAS "TRBSZ3"

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 2 meses atrás #31085 por diegoo_martins
Respondido por diegoo_martins no tópico Sql com 3 tabelas
Luiz, bom dia.

Coloquei a query que vc passou e deu error.log;

Error.log:

THREAD ERROR (Diego Martins, FENIX) 12/09/2016 10:45:38
: Error : 156 (37000) (RC=-1) - [Microsoft][SQL Server Native Client 10.0][SQL Server]Incorrect syntax near the keyword 'AND'. ( From tMSSQLConnection::GetQueryFile )

Query:

cQuery := "SELECT Z3_NUM,Z3_OF,Z3_CLIENTE,Z3_TPFRETE,Z3_NATUREZ,Z3_CONDPAG,Z3_TRANSP,Z3_PESOL,Z3_PBRUTO,"+;
"Z3_VOLUME1,Z3_FORNECE,Z3_SERVICO,Z3_QTDSERV,Z3_VLRSERV,Z3_UMSERV,Z3_ORDFABR, Z3_ESPECIE, Z3_LOCENTR, Z3_PEDCLIE, Z3_OBS,"+;
"Z4_PRODUTO,Z4_DESC,Z4_NUM,Z3_EMISSAO,Z4_ITEM,Z4_QTDVEN,Z4_VLRUNIT, Z4_UM, Z4_NFORI, Z7_NUM, Z7_SERVICO,Z7_QTDSERV,Z7_VALOR,Z7_UM,Z7_ORDFABR "
cQuery += " FROM " + RetSqlName("SZ3") + " SZ3 "
cQuery += " JOIN " + RetSqlName("SZ4") + " SZ4"
cQuery += " ON SZ4.Z4_FILIAL = " + xFilial("SZ4") + " AND SZ3.Z3_NUM = SZ4.Z4_NUM"
cQuery += " JOIN " + RetSqlName("SZ7") + " SZ7"
cQuery += " ON SZ7.Z7_FILIAL = " + xFilial("SZ7") + " AND SZ3.Z3_NUM = SZ7.Z7_NUM"
cQuery += " WHERE SZ3.Z3_NUM BETWEEN '" + mv_par01 + "' AND '" + mv_par02 + "' "
cQuery += " AND SZ3.D_E_L_E_T_ = '' "
cQuery += " AND SZ7.D_E_L_E_T_ = '' "
cQuery += " ORDER BY Z3_NUM"

TCQUERY cQuery NEW ALIAS "TRBSZ3"

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 2 meses atrás #31087 por diegoo_martins
Respondido por diegoo_martins no tópico Sql com 3 tabelas
Luiz,

Alterei as linhas abaixo e funcionou, porém está duplicando os registros.

cQuery += " ON SZ4.Z4_FILIAL = " + xFilial("SZ4") + " AND SZ3.Z3_NUM = SZ4.Z4_NUM"
cQuery += " ON SZ7.Z7_FILIAL = " + xFilial("SZ7") + " AND SZ3.Z3_NUM = SZ7.Z7_NUM"

PARA:

cQuery += " ON SZ3.Z3_NUM = SZ4.Z4_NUM "
cQuery += " ON SZ3.Z3_NUM = SZ7.Z7_NUM "

Att,

Arquivo Anexo:

Nome do Arquivo: Duplicado.rar
Tamanho do Arquivo:8 KB
Anexos:

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 2 meses atrás #31088 por lalberto
Respondido por lalberto no tópico Sql com 3 tabelas
Blz Diego, então brother ai precisaria entender o que é cada tabela, pois não tenho como saber, tenta então colocar SELECT DISTINCT no começo.

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 2 meses atrás - 8 anos 2 meses atrás #31089 por diegoo_martins
Respondido por diegoo_martins no tópico Sql com 3 tabelas
Blza Luiz..Então, desenvolvi uma rotina em MVC modelo 3 e criei o relatório em anexo para extrair as informações.

O campo de relacionamento entre as 3 tabelas é o Z3_NUM = Z4_NUM = Z7NUM

Tabelas:
SZ3 - Cabeçalho
SZ4 - Itens de Retorno
SZ7 - Itens de Faturamento (é impresso no máximo 10 itens de Faturamento por Solicitação)


Arquivo Anexo:

Nome do Arquivo: HWFATR001.rar
Tamanho do Arquivo:3 KB
Anexos:
Ultima edição: 8 anos 2 meses atrás por diegoo_martins.

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.154 segundos
Joomla templates by a4joomla