Guest User

Untitled

a guest
Oct 22nd, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.95 KB | None | 0 0
  1. CREATE PROCEDURE dbo.CalcOst @KodSkl SMALLINT,
  2. @PNT INTEGER,
  3. @Ostatok DECIMAL(18, 5) OUTPUT
  4. AS
  5. DECLARE @prod DECIMAL(18, 5), @KodPredpr INT;
  6. SET @Prod = 0;
  7. SET @Ostatok = ISNULL(
  8. (
  9. SELECT SUM(CASE DocCaption.VidDoc
  10. WHEN 1
  11. THEN ISNULL(KolF, 0)
  12. WHEN 5
  13. THEN ISNULL(KolF, 0)
  14. WHEN 2
  15. THEN-ISNULL(KolF, 0)
  16. WHEN 3
  17. THEN-ISNULL(KolF, 0)
  18. END)
  19. FROM DocString,
  20. DocCaption
  21. WHERE DocString.IdDoc = DocCaption.IdDoc
  22. AND DocCaption.KodSkl = @KodSkl
  23. AND DocString.PNT = @PNT
  24. ), 0);
  25. IF EXISTS
  26. (
  27. SELECT *
  28. FROM master.dbo.sysdatabases
  29. WHERE name = 'Ditron'
  30. )
  31. BEGIN
  32. IF
  33. (
  34. SELECT COUNT(*)
  35. FROM tbPredpr
  36. WHERE idPredpr = @KodSkl
  37. AND idGrPredpr =
  38. (
  39. SELECT idGrPredpr
  40. FROM tbGrPredpr
  41. WHERE nameGrPredpr = 'склад-магазин'
  42. )
  43. ) = 1
  44. AND
  45. (
  46. SELECT COUNT(*)
  47. FROM tbNastrSchet
  48. WHERE IdPredpr = @KodSkl
  49. ) = 1
  50. BEGIN
  51. SET @kodPredpr =
  52. (
  53. SELECT kodpredpr
  54. FROM tbpredpr
  55. WHERE idpredpr = @kodskl
  56. );
  57. SET @prod = ISNULL(
  58. (
  59. SELECT SUM(Ditron.dbo.tbProdaja.Kol)
  60. FROM Ditron.dbo.tbProdaja
  61. WHERE Ditron.dbo.tbProdaja.KodPredpr = @KodPredpr
  62. AND Ditron.dbo.tbProdaja.PNT = @PNT
  63. ), 0);
  64. SET @Ostatok = @Ostatok - @prod;
  65. END;
  66. END;
  67. GO
  68.  
  69. SET SHOWPLAN_TEXT ON;
  70. GO
  71.  
  72. SELECT SUM(CASE DocCaption.VidDoc
  73. WHEN 1
  74. THEN ISNULL(KolF, 0)
  75. WHEN 5
  76. THEN ISNULL(KolF, 0)
  77. WHEN 2
  78. THEN-ISNULL(KolF, 0)
  79. WHEN 3
  80. THEN-ISNULL(KolF, 0)
  81. END)
  82. FROM DocString,
  83. DocCaption
  84. WHERE DocString.IdDoc = DocCaption.IdDoc
  85. AND DocCaption.KodSkl = 1508
  86. AND DocString.PNT = 188354;
  87. GO
  88.  
  89. SET SHOWPLAN_TEXT OFF;
  90. GO
  91.  
  92. |--Compute Scalar(DEFINE:([Expr1004]=If ([Expr1011]=0) then NULL else [Expr1012]))
  93. |--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
  94. |--Nested Loops(Inner Join, OUTER REFERENCES:([DocString].[IdDoc]) WITH PREFETCH)
  95. |--Bookmark Lookup(BOOKMARK:([Bmk1000]), OBJECT:([maindatabase].[dbo].[DocString]) WITH PREFETCH)
  96. |--Index Seek(OBJECT:([maindatabase].[dbo].[DocString].[lx1]), SEEK:([DocString].[PNT]=188354) ORDERED FORWARD)
  97. |--Index Seek(OBJECT:([maindatabase].[dbo].[DocCaption].[IX_DocCaption]), SEEK:([DocCaption].[IdDoc]=[DocString].[IdDoc] AND [DocCaption].[KodSkl]=1508) ORDERED FORWARD)
  98.  
  99. таблица: DocCaption
  100. колонки: KodSkl
  101.  
  102. таблица: DocString
  103. колонки: IdDoc, PNT
Add Comment
Please, Sign In to add comment