- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ajuda com Functions
×
Linguagem de Programação ADVPL
Perguntas Ajuda com Functions
- hbaldin
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 266
- Obrigados Recebidos: 0
10 anos 1 mês atrás #25818
por hbaldin
Ajuda com Functions foi criado por hbaldin
Galera alguém pode me dar uma mao com essa function , essa é ela quero passar o campo e o valor para comparação
Ex: na mesma query tenho que verificar todas as vendas do f2_vend1 e f2_vend2
se eu colocar o campo na mão na function funciona , mas ae tenho que cria 2 function
CREATE FUNCTION [dbo].[fxprcven] ( @vend VARCHAR(6), @campo VARCHAR( )
RETURNS TABLE
AS
RETURN (
SELECT ISNULL ( (SELECT SUM( F2_VALBRUT) qtd FROM SF2010 F2
WHERE F2.F2_EMISSAO > DATEADD(dd,-(DAY(GETDATE())-1),GETDATE())-1
AND F2.F2_TIPO = 'N'
AND F2.D_E_L_E_T_ <> '*'
AND @campo = @vend
), 0) AS VALOR
)
GO
Vlw galera
Ex: na mesma query tenho que verificar todas as vendas do f2_vend1 e f2_vend2
se eu colocar o campo na mão na function funciona , mas ae tenho que cria 2 function
CREATE FUNCTION [dbo].[fxprcven] ( @vend VARCHAR(6), @campo VARCHAR( )
RETURNS TABLE
AS
RETURN (
SELECT ISNULL ( (SELECT SUM( F2_VALBRUT) qtd FROM SF2010 F2
WHERE F2.F2_EMISSAO > DATEADD(dd,-(DAY(GETDATE())-1),GETDATE())-1
AND F2.F2_TIPO = 'N'
AND F2.D_E_L_E_T_ <> '*'
AND @campo = @vend
), 0) AS VALOR
)
GO
Vlw galera
Por favor Acessar ou Registrar para participar da conversa.
- hbaldin
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 266
- Obrigados Recebidos: 0
10 anos 1 mês atrás - 10 anos 1 mês atrás #25820
por hbaldin
Respondido por hbaldin no tópico Ajuda com Functions
tentei assim tb...
declare @campo varchar(8 ), @vend varchar(6)
SET @campo = 'F2_VEND1'
set @vend = '005'
SELECT SUM( F2_VALBRUT) qtd FROM SF2010 F2
WHERE F2.F2_EMISSAO > '20141001'
AND F2.F2_TIPO = 'N'
AND F2.D_E_L_E_T_ <> '*'
AND @campo = @vend
E nada :/
declare @campo varchar(8 ), @vend varchar(6)
SET @campo = 'F2_VEND1'
set @vend = '005'
SELECT SUM( F2_VALBRUT) qtd FROM SF2010 F2
WHERE F2.F2_EMISSAO > '20141001'
AND F2.F2_TIPO = 'N'
AND F2.D_E_L_E_T_ <> '*'
AND @campo = @vend
E nada :/
Ultima edição: 10 anos 1 mês atrás por hbaldin.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ajuda com Functions
Tempo para a criação da página:0.092 segundos