× Linguagem de Programação ADVPL

Perguntas duvida query - workflow

Mais
10 anos 1 semana atrás #26079 por mvittoria
Boa Tarde,

Estou customizando um workflow pré existente, para produtos com estoque negativo.
Presiço criar uma tag onde traga o valor total, pois o mesmo workflow separa por CC.
Faço isso criando uma query (SUM) ou somente via código (alguem teria algum exemplo)

Grato

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 1 semana atrás #26092 por afppellegrini
Respondido por afppellegrini no tópico duvida query - workflow
Bom dia mvittoria,
Recomendo você fazer isso via SQL, porem preciso de mais informações sobre sua necessidade para lhe ajudar melhor.
Abaixo tem um exemplo de select que retorna o Código do produto e o saldo total negativo de cada um deles.


SELECT B2_COD AS CODIGO,
SUM(B2_QATU) AS SALDO
FROM SB2010 B2
WHERE B2.B2_QATU < 0
AND B2.D_E_L_E_T_ = ' '
GROUP BY B2_COD, B2_QATU

Obrigado!

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 1 semana atrás #26097 por mvittoria
Respondido por mvittoria no tópico duvida query - workflow
Obrigado por responder ja tenho uma query montada

cQuery := "SELECT B2_COD,B2_LOCAL,B1_DESC,B1_UM,B1_TIPO,B2_QATU,B2_CM1,B2_VATU1 "
cQuery += "FROM "+RetSqlName("SB2")+" B2 ,"+RetSqlName("SB1")+" B1 "
cQuery += "WHERE B2.D_E_L_E_T_ = '' AND B2_FILIAL = '"+xFilial("SB2")+"' "
cQuery += "AND B1.D_E_L_E_T_ = '' AND B1_FILIAL = '"+xFilial("SB1")+"' "
cQuery += "AND B2_LOCAL IN ('01','99') AND B2_COD = B1_COD AND B2_QATU < 0 AND B1_TIPO = 'MP' "
cQuery += "ORDER BY B2_LOCAL,B2_COD "
cQuery := ChangeQuery(cQuery)

minha dúvida seria, como trato o Alias que criei no SUM, no caso da sua query o "SALDO"

Grato

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 1 semana atrás #26101 por afppellegrini
Respondido por afppellegrini no tópico duvida query - workflow
Olá, pode usar assim:
cQuery := "SELECT B2_COD, "
		        B2_LOCAL, "
			B1_DESC, "
			B1_UM, "
			B1_TIPO, "
			SUM(B2_QATU) AS SALDO, "
			B2_CM1, "
			B2_VATU1 "
cQuery += "FROM "+RetSqlName("SB2")+" B2 ,"+RetSqlName("SB1")+" B1 "
cQuery += "WHERE B2.D_E_L_E_T_ = '' AND B2_FILIAL = '"+xFilial("SB2")+"' "
cQuery += "AND B1.D_E_L_E_T_ = '' AND B1_FILIAL = '"+xFilial("SB1")+"' "
cQuery += "AND B2_LOCAL IN ('01','99') AND B2_COD = B1_COD AND B2_QATU < 0 AND B1_TIPO = 'MP' "
cQuery += "GROUP BY B2_COD, "
          B2_LOCAL, "
          B1_DESC, "
          B1_UM, "
          B1_TIPO, "
          B2_QATU, "
          B2_CM1, "
          B2_VATU1 "
cQuery += "ORDER BY B2_LOCAL,B2_COD "
cQuery := ChangeQuery(cQuery)
TcQuery cQuery New Alias "TRB"

TRB->(dbGoTop())
While ! TRB->(Eof()) 
	_cSaldo += TRB->SALDO //recebe a soma dos saldos negativos.
	TRB->(dbSkip())
Enddo
//---------------------------------------------------------------//
// Fecha tabela temporária                    //
//---------------------------------------------------------------//
TRB->(dbCloseArea())

Return


Att.
Andre Pellegrini!

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 1 semana atrás #26102 por mvittoria
Respondido por mvittoria no tópico duvida query - workflow
Irei testar e te mantenho informado, obrigado

Por favor Acessar ou Registrar para participar da conversa.

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