hallo,
I have PostgreSQL in Linux. I use it with pgAdminII in Wondows2000.
how can I transport Procedural and Function from MS SQL Enterprise Manage to
PostgreSQL.
Thanks!!!
rong
CREATE FUNCTION dbo.getICNroh (@Bogen_Nr smallint)
RETURNS smallint AS
BEGIN
DECLARE @myRet int
--Rohwert der Skala 1 (ICN) ermitteln
DECLARE @step01a smallint
DECLARE @step02a smallint
DECLARE @step01b smallint
DECLARE @step02b smallint
SELECT @step01a = Antwort FROM PAI_ANTWORTEN WHERE ITEM_NR = 75 AND
Bogen_Nr = @Bogen_Nr
SELECT @step01b = Antwort FROM PAI_ANTWORTEN WHERE ITEM_NR = 115 AND
Bogen_Nr = @Bogen_Nr
SELECT @step02a = Antwort FROM PAI_ANTWORTEN WHERE ITEM_NR = 4 AND
Bogen_Nr = @Bogen_Nr
SELECT @step02b = Antwort FROM PAI_ANTWORTEN WHERE ITEM_NR = 44 AND
Bogen_Nr = @Bogen_Nr
SELECT @myRet = ABS(@Step01a - @step01b)
+ ABS(@Step02a - @step02b)
--Wert zurückgeben
RETURN @myRet
END
CREATE PROCEDURE sp_PAI_Werte
@Bogen_Nr int
AS
create table #tmpPAI_Rohwerte (Skala_Nr smallint primary key, Rohwert
smallint)
--Rohwerte ermitteln (außer Skala 1 ICN)
INSERT into #tmpPAI_Rohwerte
SELECT dbo.PAI_SKALEN.Skala_Nr, sum((CONVERT(tinyint,
dbo.PAI_ANTWORTEN.Antwort) + dbo.PAI_KEYcalc.toAdd) *
dbo.PAI_KEYcalc.Faktor) AS Rohwert
FROM dbo.PAI_SKALEN INNER JOIN
dbo.PAI_ITEMinSKALA ON dbo.PAI_SKALEN.Skala_Nr =
dbo.PAI_ITEMinSKALA.Skala_Nr INNER JOIN
dbo.PAI_ITEMS ON dbo.PAI_ITEMinSKALA.Item_Nr =
dbo.PAI_ITEMS.Item_Nr INNER JOIN
dbo.PAI_ANTWORTEN ON dbo.PAI_ITEMS.Item_Nr =
dbo.PAI_ANTWORTEN.Item_Nr INNER JOIN
dbo.PAI_KEYcalc ON dbo.PAI_ITEMinSKALA.keyDir =
dbo.PAI_KEYcalc.keyDir
WHERE (dbo.PAI_ANTWORTEN.Antwort <> ' ') and PAI_Antworten.Bogen_Nr =
@Bogen_Nr
GROUP BY dbo.PAI_SKALEN.Skala_Nr
--ICN Rohwert einfügen
IF EXISTS(SELECT * from #tmpPAI_Rohwerte WHERE Skala_Nr = 1)
UPDATE #tmpPAI_Rohwerte SET Rohwert = dbo.getICNroh(@Bogen_Nr) WHERE
Skala_Nr = 1
ELSE
INSERT INTO #tmpPAI_Rohwerte (Skala_Nr, Rohwert)
VALUES(1,dbo.getICNroh(@Bogen_Nr))
--T-Werte bereitstellen
SELECT dbo.PAI_SKALEN.Skala_Nr, dbo.PAI_SKALEN.Kuerzel_D AS Kuerzel,
dbo.PAI_SKALEN.Label_D AS Label, #tmpPAI_Rohwerte.rohwert as rohwert,
ROUND(50 + (#tmpPAI_Rohwerte.rohwert -
dbo.PAI_SKALEN.M) *10 / dbo.PAI_SKALEN.SD, 0) AS TWert
FROM dbo.PAI_SKALEN LEFT OUTER JOIN
#tmpPAI_Rohwerte ON dbo.PAI_SKALEN.Skala_Nr =
#tmpPAI_Rohwerte.skala_nr
GO