|
|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Akzhan Abdulin 2:5030/217 17 Feb 2001 16:07:12 To : All Subject : деревья 4 --------------------------------------------------------------------------------
Об именовании
=== Cut ===
CREATE VIEW akViewGenericAccountCode_Supp("Id", "Code")
AS
SELECT
"Id", "Code"
FROM
ASubAccount
UNION ALL
SELECT
"Id", "Code"
FROM
ARootAccount
GO
CREATE VIEW akViewGenericAccountCode
AS
SELECT
CA."Id",
CA.IsRoot,
CA.IsSub,
CA.IsFolder,
CA.IsLeaf,
ISNULL(VGACS."Code", '#' + CAST(CA."Id" AS VARCHAR(100))) AS "Code"
FROM
ACustomAccount CA
LEFT OUTER JOIN akViewGenericAccountCode_Supp VGACS ON (CA."Id" =
VGACS."Id")
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION akGetGenericAccountCode(@Id AnAccountId)
RETURNS AnAccountCode
AS
BEGIN
DECLARE @Result AnAccountCode
SELECT TOP 1 @Result = "Code" FROM akViewGenericAccountCode WHERE "Id" = @Id
RETURN @Result
END
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION akGetAccountPath(@Id AnAccountId)
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @Result VARCHAR(8000)
SET @Result = ''
WHILE EXISTS(SELECT * FROM ACustomAccount WHERE ("Id" = @Id))
BEGIN
SET @Result = '\' + dbo.akGetGenericAccountCode(@Id) + @Result
IF NOT EXISTS(SELECT * FROM ASubAccount WHERE ("Id" = @Id))
BEGIN
BREAK
END
SELECT @Id = FolderAccountId FROM ASubAccount WHERE ("Id" = @Id)
END
RETURN @Result
END
GO
=== Cut ===
Akzhan
--- FMail/Win32 1.42/g
* Origin: MT Computers, mailto:akzhan@mtgroup.ru (2:5030/217)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/22713a8e9404.html, оценка из 5, голосов 10
|