Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE PROCEDURE dbo.CalcOst @KodSkl SMALLINT,
- @PNT INTEGER,
- @Ostatok DECIMAL(18, 5) OUTPUT
- AS
- DECLARE @prod DECIMAL(18, 5), @KodPredpr INT;
- SET @Prod = 0;
- SET @Ostatok = ISNULL(
- (
- SELECT SUM(CASE DocCaption.VidDoc
- WHEN 1
- THEN ISNULL(KolF, 0)
- WHEN 5
- THEN ISNULL(KolF, 0)
- WHEN 2
- THEN-ISNULL(KolF, 0)
- WHEN 3
- THEN-ISNULL(KolF, 0)
- END)
- FROM DocString,
- DocCaption
- WHERE DocString.IdDoc = DocCaption.IdDoc
- AND DocCaption.KodSkl = @KodSkl
- AND DocString.PNT = @PNT
- ), 0);
- IF EXISTS
- (
- SELECT *
- FROM master.dbo.sysdatabases
- WHERE name = 'Ditron'
- )
- BEGIN
- IF
- (
- SELECT COUNT(*)
- FROM tbPredpr
- WHERE idPredpr = @KodSkl
- AND idGrPredpr =
- (
- SELECT idGrPredpr
- FROM tbGrPredpr
- WHERE nameGrPredpr = 'склад-магазин'
- )
- ) = 1
- AND
- (
- SELECT COUNT(*)
- FROM tbNastrSchet
- WHERE IdPredpr = @KodSkl
- ) = 1
- BEGIN
- SET @kodPredpr =
- (
- SELECT kodpredpr
- FROM tbpredpr
- WHERE idpredpr = @kodskl
- );
- SET @prod = ISNULL(
- (
- SELECT SUM(Ditron.dbo.tbProdaja.Kol)
- FROM Ditron.dbo.tbProdaja
- WHERE Ditron.dbo.tbProdaja.KodPredpr = @KodPredpr
- AND Ditron.dbo.tbProdaja.PNT = @PNT
- ), 0);
- SET @Ostatok = @Ostatok - @prod;
- END;
- END;
- GO
- SET SHOWPLAN_TEXT ON;
- GO
- SELECT SUM(CASE DocCaption.VidDoc
- WHEN 1
- THEN ISNULL(KolF, 0)
- WHEN 5
- THEN ISNULL(KolF, 0)
- WHEN 2
- THEN-ISNULL(KolF, 0)
- WHEN 3
- THEN-ISNULL(KolF, 0)
- END)
- FROM DocString,
- DocCaption
- WHERE DocString.IdDoc = DocCaption.IdDoc
- AND DocCaption.KodSkl = 1508
- AND DocString.PNT = 188354;
- GO
- SET SHOWPLAN_TEXT OFF;
- GO
- |--Compute Scalar(DEFINE:([Expr1004]=If ([Expr1011]=0) then NULL else [Expr1012]))
- |--Stream Aggregate(DEFINE:([Expr1011]=COUNT_BIG(If ([DocCaption].[VidDoc]=1) then isnull([DocString].[KolF], 0.00000) else If ([DocCaption].[VidDoc]=5) then isnull([DocString].[KolF], 0.00000) else If ([DocCaption].[VidDoc]=2) then ( -isnull([DocSt
- |--Nested Loops(Inner Join, OUTER REFERENCES:([DocString].[IdDoc]) WITH PREFETCH)
- |--Bookmark Lookup(BOOKMARK:([Bmk1000]), OBJECT:([maindatabase].[dbo].[DocString]) WITH PREFETCH)
- |--Index Seek(OBJECT:([maindatabase].[dbo].[DocString].[lx1]), SEEK:([DocString].[PNT]=188354) ORDERED FORWARD)
- |--Index Seek(OBJECT:([maindatabase].[dbo].[DocCaption].[IX_DocCaption]), SEEK:([DocCaption].[IdDoc]=[DocString].[IdDoc] AND [DocCaption].[KodSkl]=1508) ORDERED FORWARD)
- таблица: DocCaption
- колонки: KodSkl
- таблица: DocString
- колонки: IdDoc, PNT
Add Comment
Please, Sign In to add comment