Perguntas Ajuda com Query

Mais
6 anos 1 mês atrás #32478 por Alex.brag
Ajuda com Query foi criado por Alex.brag
Boa Tarde, Pessoal!

Sou novo em advpl e estou com uma duvida com query abaixo se alguém puder me ajudar eu agradeço, é o seguinte. Quando eu gero o relatório e não tenha o cadastro na tabela SZ3 ( Z3_COD ) nao sai nada mesmo que tenha cadastro nas outras duas C6_PRODUTO e B1_COD, gostaria de saber se tem como sair os outros dados mesmo quando nao tiver cadastro na tabela SZ3 ( Z3_COD).




_cQuery := "SELECT C5_EMISSAO, C6_ENTREG, C5_NUM, C5_CLIENTE, C5_LOJACLI, A1_NOME, C6_UNSVEN,C6_QTDVEN, C6_PRODUTO, C6_DESCRI, C6_TES, Z3_COD, Z3_FICH294, Z3_FICH295, Z3_FICH296, Z3_FICH293, "
_cQuery += "B1_FICH_64,B1_FICH_08,B1_FICH_56,B1_FICH_10,B1_FICH_13,B1_FICH_11,B1_FICH_31,B1_FICH_01,B1_FICH_04,B1_FICH_05,B1_FICH_90,B1_FICH_51,B1_FICH_15,B1_FICH_21,B1_FICH_37,B1_FICH_16,B1_FICH_22,B1_FICH_38,B1_FICH_17,B1_FICH_23,B1_FICH_39,B1_FICH_18,B1_FICH_24,B1_FICH_40,B1_FICH_19,B1_FICH_25,B1_FICH_41,B1_FICH_20,B1_FICH_26,B1_FICH_42,B1_FICH_33,B1_FICH_27,B1_FICH_28,B1_FICH_68,B1_FICH_69,B1_FICH_52,B1_FICH_58,B1_FICH_61,B1_FICH_62 "
_cQuery += "FROM " + retsqlname("SC5") +" AS C5, " + retsqlname("SZ3") +" AS Z3, " + retsqlname("SC6") +" AS C6, " + retsqlname("SA1") +" AS A1, " + retsqlname("SB1") +" AS B1 "
_cQuery += "WHERE C5.D_E_L_E_T_ <>'*' "
_cQuery += "AND C6.D_E_L_E_T_ <>'*' "
_cQuery += "AND A1.D_E_L_E_T_ <>'*' "
_cQuery += "AND B1.D_E_L_E_T_ <>'*' "
_cQuery += "AND Z3.D_E_L_E_T_ <>'*' " //ALEX
_cQuery += "AND C6_ENTREG BETWEEN '"+DTOS(MV_PAR01)+"' AND '"+DTOS(MV_PAR02)+"' "
_cQuery += "AND C5_EMISSAO BETWEEN '"+DTOS(MV_PAR03)+"' AND '"+DTOS(MV_PAR04)+"' "
_cQuery += "AND C5_VEND1 BETWEEN '"+MV_PAR05+"' AND '"+MV_PAR06+"' "
_cQuery += "AND C5_CLIENTE BETWEEN '"+MV_PAR07+"' AND '"+MV_PAR08+"' "
_cQuery += "AND B1_GRUPO BETWEEN '"+MV_PAR09+"' AND '"+MV_PAR10+"' "
_cQuery += "AND (C5_CLIENTE = A1_COD AND C5_LOJACLI = A1_LOJA) "
_¨cQuery += "AND C6_PRODUTO = B1_COD "
_cQuery += "AND Z3_COD = B1_COD " //ALEX
_cQuery += "AND C6_NUM = C5_NUM "
_cQuery += "AND C6_NOTA = '' "
_cQuery += "ORDER BY C5_NUM, C6_PRODUTO "
TCQUERY _cQuery new alias "XC6"

dbSelectArea("XC6")

XC6->(dbgotop())

Por favor Acessar ou Registrar para participar da conversa.

Mais
6 anos 1 mês atrás #32481 por maurorafael
Respondido por maurorafael no tópico Ajuda com Query
Utiliza left join na sz3 que da certo o que tu quer.

Por favor Acessar ou Registrar para participar da conversa.

Mais
6 anos 1 mês atrás #32489 por admin
Respondido por admin no tópico Ajuda com Query
SELECT C5_EMISSAO, C6_ENTREG, C5_NUM, C5_CLIENTE, C5_LOJACLI, A1_NOME, C6_UNSVEN,C6_QTDVEN, C6_PRODUTO, C6_DESCRI, C6_TES, ISNULL(Z3_COD,'') Z3_COD, ISNULL(Z3_FICH294,'') Z3_FICH294, ISNULL(Z3_FICH295,'') Z3_FICH295, ISNULL(Z3_FICH296,'') Z3_FICH296, ISNULL(Z3_FICH293,'') Z3_FICH293,
B1_FICH_64,B1_FICH_08,B1_FICH_56,B1_FICH_10,B1_FICH_13,B1_FICH_11,B1_FICH_31,B1_FICH_01,B1_FICH_04,B1_FICH_05,B1_FICH_90,B1_FICH_51,B1_FICH_15,B1_FICH_21,B1_FICH_37,B1_FICH_16,B1_FICH_22,B1_FICH_38,B1_FICH_17,B1_FICH_23,B1_FICH_39,B1_FICH_18,B1_FICH_24,B1_FICH_40,B1_FICH_19,B1_FICH_25,B1_FICH_41,B1_FICH_20,B1_FICH_26,B1_FICH_42,B1_FICH_33,B1_FICH_27,B1_FICH_28,B1_FICH_68,B1_FICH_69,B1_FICH_52,B1_FICH_58,B1_FICH_61,B1_FICH_62
FROM SC5010 C5
LEFT JOIN SC6010 C6
ON C6.D_E_L_E_T_ = '' AND C5.C5_NUM = C6.C6_NUM AND C5.C5_FILIAL = C6.C6_FILIAL AND C6.C6_NOTA = ''
LEFT JOIN SA1010 A1
ON A1.D_E_L_E_T_ = '' AND A1.A1_COD = C5.C5_CLIENTE AND A1.A1_LOJA = C5.C5_LOJACLI
LEFT JOIN SB1010 B1
ON B1.D_E_L_E_T_ = '' AND B1_GRUPO BETWEEN '' AND '' AND B1_COD = C6.C6_PRODUTO
LEFT JOIN SZ3010 Z3
ON Z3.D_E_L_E_T_ = '' AND Z3.Z3_COD = B1.B1_COD
WHERE C6_ENTREG BETWEEN '' AND ''
AND C5_EMISSAO BETWEEN '' AND ''
AND C5_VEND1 BETWEEN '' AND ''
AND C5_CLIENTE BETWEEN '' AND ''
AND C6_NOTA = ''
ORDER BY C5_NUM, C6_PRODUTO

Por favor Acessar ou Registrar para participar da conversa.

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