• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

powerPT

[SQL Server] Dúvida em função

2 mensagens neste tópico

Estou com um problema e não sei como resolver, vejamos:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fv_Promocoes 
(
@Produto_ID int
)
RETURNS MONEY
AS
BEGIN
DECLARE @Preco MONEY
IF EXISTS (SELECT Produto_ID FROM Promocoes_Destaques WHERE Produto_ID = @Produto_ID)
	BEGIN
		SELECT PrecoProm FROM Promocoes_Destaques WHERE Produto_ID = @Produto_ID
	END
ELSE
	BEGIN
		SELECT Preco FROM Produtos WHERE Produto_ID = @Produto_ID
	END
RETURN @Preco
END
GO

Quero que retorne o @Preco mas não estou a ver como igualo, ou seja, já tentei fazer:

SELECT @Preco = SELECT PrecoProm FROM Promocoes_Destaques WHERE Produto_ID = @Produto_ID

mas dá erro

O problema reside em realmente igualar o @Preco, penso eu de que...

Já agora, os erros que me dão:

Msg 444, Level 16, State 2, Procedure fv_Promocoes, Line 11

Select statements included within a function cannot return data to a client.

Msg 444, Level 16, State 2, Procedure fv_Promocoes, Line 15

Select statements included within a function cannot return data to a client.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes fazer assim:

SELECT @Preco = PrecoProm FROM Promocoes_Destaques WHERE Produto_ID = @Produto_ID

Cumps :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora