× Linguagem de Programação ADVPL

Perguntas Ajuda com query

Mais
11 anos 2 semanas atrás - 11 anos 2 semanas atrás #18220 por ftvernier
Ajuda com query foi criado por ftvernier
Fala Galera Blz?

Estou montando uma declaração de faturamento e na hora da query filtrar na SD2 estou errando em algum ponto poderiam me dar uma luz?

Valeu

cQuery := " SELECT "+CRLF
cQuery += " D2_DOC,D2_QUANT,D2_EMISSAO,D2_TOTAL"+CRLF
cQuery += " FROM " +RetSqlName("SD2")CRLF
cQuery += " SUM(D2_QUANT)"+CRLF
cQuery += " SUM(D2_TOTAL)"+CRLF
cQuery += " WHERE "+CRLF
cQuery += " D2_EMISSAO>= '"+Dtos(dDat)+"'"+CRLF
cQuery += " AND D2_EMISSAO<= '"+Dtos(dDat2)+"'"+CRLF
cQuery += " AND D2_CF IN ('5101','5102','5124','5125','6101','6102','6109','6124')"+CRLF
cQuery += " AND D2.D_E_L_E_T_='' "+CRLF
cQuery += " ORDER BY D2_EMISSAO,D2_DOC "+CRLF
Ultima edição: 11 anos 2 semanas atrás por ftvernier.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 semanas atrás #18221 por kanaamlrr
Respondido por kanaamlrr no tópico Ajuda com query
tenta assim:


cQuery := " SELECT "+CRLF
cQuery += " D2_DOC,D2_QUANT,D2_EMISSAO,D2_TOTAL"+CRLF
cQuery += " SUM(D2_QUANT)"+CRLF
cQuery += " SUM(D2_TOTAL)"+CRLF
cQuery += " FROM " +RetSqlName("SD2")+CRLF
cQuery += " WHERE "+CRLF
cQuery += " D2_EMISSAO>= '"+Dtos(dDat)+"'"+CRLF
cQuery += " AND D2_EMISSAO<= '"+Dtos(dDat2)+"'"+CRLF
cQuery += " AND D2_CF IN ('5101','5102','5124','5125','6101','6102','6109','6124')"+CRLF
cQuery += " AND D2.D_E_L_E_T_='' "+CRLF
cQuery += " ORDER BY D2_EMISSAO,D2_DOC "+CRLF

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 semanas atrás #18222 por ftvernier
Respondido por ftvernier no tópico Ajuda com query
Kanaãm Blz Brother?

Infelizmente não rolou deu erro:

HREAD ERROR (fernando.vernier, FERNANDO-PC) 04/11/2013 15:12:54
: Error : 102 (37000) (RC=-1) - [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near 'D2_QUANT'. ( From tMSSQLConnection::GetQueryFile )


Abraços.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 semanas atrás #18223 por kanaamlrr
Respondido por kanaamlrr no tópico Ajuda com query
Certo.
Vi uma coisa estranha nessa consulta.
Você está tentando agrupar por quais campos?
cQuery	:= "	SELECT "
cQuery	+= "	D2_DOC,D2_QUANT,D2_EMISSAO,D2_TOTAL "
//cQuery += " SUM(D2_QUANT)"
//cQuery += " SUM(D2_TOTAL)"
cQuery	+= "	FROM " +RetSqlName("SD2")
cQuery	+= "	WHERE "
cQuery	+= "	D2_EMISSAO>= '"+Dtos(dDat)+"'"
cQuery	+= "	AND D2_EMISSAO<= '"+Dtos(dDat2)+"'"
cQuery	+= "	AND D2_CF IN ('5101','5102','5124','5125','6101','6102','6109','6124')"
cQuery	+= "	AND D2.D_E_L_E_T_='' "
cQuery	+= "	ORDER BY D2_EMISSAO,D2_DOC "

Se você remover o SUM ele deve funcionar.
O problema é que para você realizar um SUM utilizando os campos que você quer, você teria que mudar para a query abaixo:

cQuery	:= "	SELECT "
cQuery	+= "	D2_DOC,SUM(D2_QUANT),D2_EMISSAO,SUM(D2_TOTAL) "
cQuery	+= "	FROM " +RetSqlName("SD2")
cQuery	+= "	WHERE "
cQuery	+= "	D2_EMISSAO>= '"+Dtos(dDat)+"'"
cQuery	+= "	AND D2_EMISSAO<= '"+Dtos(dDat2)+"'"
cQuery	+= "	AND D2_CF IN ('5101','5102','5124','5125','6101','6102','6109','6124')"
cQuery	+= "	AND D2.D_E_L_E_T_='' "
cQuery	+= "	GROUP BY D2_EMISSAO,D2_DOC "
cQuery	+= "	ORDER BY D2_EMISSAO,D2_DOC "

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 semanas atrás #18224 por lalberto
Respondido por lalberto no tópico Ajuda com query
cQuery := " SELECT "+CRLF
cQuery += " D2_EMISSAO, D2_DOC, "+CRLF
cQuery += " SUM(D2_QUANT), "+CRLF
cQuery += " SUM(D2_TOTAL)"+CRLF
cQuery += " FROM " +RetSqlName("SD2")+CRLF
cQuery += " WHERE "+CRLF
cQuery += " D2_EMISSAO>= '"+Dtos(dDat)+"'"+CRLF
cQuery += " AND D2_EMISSAO<= '"+Dtos(dDat2)+"'"+CRLF
cQuery += " AND D2_CF IN ('5101','5102','5124','5125','6101','6102','6109','6124')"+CRLF
cQuery += " AND D2.D_E_L_E_T_='' "+CRLF
cQuery += " GROUP BY D2_EMISSAO,D2_DOC "+CRLF
cQuery += " ORDER BY D2_EMISSAO,D2_DOC "+CRLF

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
11 anos 2 semanas atrás #18225 por ftvernier
Respondido por ftvernier no tópico Ajuda com query
Kanaãm,

Eu tinha uma outra query que montei que me trás o quanto foi faturado mensalmente por determinado CFOP:

SELECT B1.B1_COD CODIGO,
B1.B1_DESC DESCRICAO,
B1.B1_UM MEDIDA,
B1.B1_POSIPI NCM,
SD2.D2_CF CFOP,
SUM(SD2.D2_QUANT) QTD_TOTAL,
SUM(SD2.D2_TOTAL) VLR_TOTAL
FROM SD2010 AS SD2 WITH (NOLOCK)
INNER JOIN SB1010 AS B1 WITH (NOLOCK)
ON B1.B1_COD = SD2.D2_COD
INNER JOIN SF4010 SF4 WITH (NOLOCK)
ON SF4.F4_CODIGO = SD2.D2_TES
WHERE SD2.D_E_L_E_T_ <> '*'
AND SF4.D_E_L_E_T_ <> '*'
AND SF4.F4_DUPLIC = 'S'
AND SD2.D2_TIPO = 'N'
AND SD2.D2_EMISSAO BETWEEN '20130101' AND '20130131'
AND B1.D_E_L_E_T_ <> '*'
GROUP BY B1.B1_COD,
B1.B1_DESC,
B1.B1_UM,
B1.B1_POSIPI,
SD2.D2_CF
ORDER BY B1.B1_COD


Eu estava tentando montar essa mesma query mas somente com dados da SD2 nessa outra query para me trazer só os valores referente ao faturamento.

Vou testar com a sua query.

Obrigado.

Por favor Acessar ou Registrar para participar da conversa.

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