C#nedir?com Homepage
Forum Home Forum Home > Veritabanları > SQL Server
  New Posts New Posts RSS Feed - Table function da declare, set ve if-else problemi
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Table function da declare, set ve if-else problemi

 Post Reply Post Reply
   

Author
Message
Rapunzo View Drop Down
Groupie
Groupie


Joined: 27 Mayıs 2007
Location: Turkey
Status: Offline
Points: 121
Post Options Post Options   Thanks (0) Thanks(0)   Quote Rapunzo Quote  Post ReplyReply Direct Link To This Post Topic: Table function da declare, set ve if-else problemi
    Posted: 20 Temmuz 2009 at 19:05
USE [Hospital]
GO
/****** Object: UserDefinedFunction [VEZNE].[fnMakbuzAraligiSorgula]    Script Date: 07/20/2009 17:36:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author     :
-- Description:     refnoya göre ücretli ve yatış durumunda olmayan hastaların işlemlerini veya bunlar dışındakileri getirir.
-- Usage      : SELECT * FROM [VEZNE].[fnMakbuzIslem]('1246150')
-- =============================================
CREATE FUNCTION [VEZNE].[fnMakbuzIslem]
(
     @refNo     as int     
)

RETURNS TABLE
AS
RETURN
(
     DECLARE @durum     AS VARCHAR
     DECLARE     @hastaTuru AS VARCHAR
     DECLARE @makTipi   AS VARCHAR
     
     SET @durum     = (SELECT durum FROM TH_RefKart WHERE RefNo = @refNo)
     SET @hastaTuru = (SELECT HastaTuru FROM TH_Dosya WHERE DosyaNo in (SELECT DosyaNo FROM TH_RefKart WHERE RefNo = @refNo))
    SET @makTipi   = (SELECT maktipi FROM TH_Islem WHERE refNo = @refNo)
    
     IF ((@hastaTuru = 'Ücretli') AND (@durum <> 'AYAKTA')) OR @makTipi = '0'
     BEGIN
           SELECT kontrol1,key0,tarih,hizkod,hizad,ytlhizfiyat,hizmiktar,ytlhiztutar
           FROM TH_Islem
           WHERE refno= @refNo and DekontNo = '0' and anahtar<> -1
     END
)

şeklinde bir fonksiyon yazmak istiyorum ama aldığım hatalar

Msg 156, Level 15, State 1, Procedure fnMakbuzIslem, Line 15
Incorrect syntax near the keyword 'DECLARE'.
Msg 102, Level 15, State 1, Procedure fnMakbuzIslem, Line 29
Incorrect syntax near ')'.


Yapmam gerekeni bir türlü bulamadım. yardımlarınız için şimdiden teşekkürler.

                                   

Edited by Rapunzo - 19 Ağustos 2009 at 23:11
Back to Top
anda_pro View Drop Down
Senior Member
Senior Member


Joined: 31 Mart 2007
Status: Offline
Points: 341
Post Options Post Options   Thanks (0) Thanks(0)   Quote anda_pro Quote  Post ReplyReply Direct Link To This Post Posted: 25 Temmuz 2009 at 12:17
Kod içerisinde tabloyu oluşturup daha sonra bunu geri döndürmek istiyorsanız tablo tipinde bir değişken tanımlayıp bu değeri kullanmalısınız. Sizin yazdığınız örnekte sadece dışarıdan aldığınız değişkenleri sorgu içerisinde süzgeç olarak kullanabilirsiniz. Kodun genel yapısı aşağıdaki gibi olmalıdır.
 
CREATE FUNCTION [dbo].[fn_FonksiyonAdi] (@Degisken1 VARCHAR(25), @Degisken2 FLOAT)
RETURNS @Tablo TABLE (Alan1 INT,
                      Alan2 VARCHAR(25),
                      Alan3 DATETIME)
AS
BEGIN
    DECLARE @Degisken3 INT, @Degisken4 VARCHAR(50)
    ...
    ...
    INSERT INTO @Tablo(Alan1,Alan2,Alan3)
    VALUES(1,'Değer','2009-01-01')
    ...
    ...
    RETURN
END
Back to Top
 Post Reply Post Reply
  Share Topic   
   


Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 11.01
Copyright ©2001-2014 Web Wiz Ltd.