Pollpay.sql 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. USE [db]
  2. GO
  3. /****** Object: View [dbo].[Payroll] Script Date: 2016-08-20 11:52:48 ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. create view [dbo].[Payroll] as select
  9. dbo.dindan.name1,
  10. dbo.dindan.name2,
  11. dbo.dindan.txtype,
  12. dbo.dindan.taoxiname,
  13. dbo.dindan.taoxijiage,
  14. (case when dbo.dindanbukuan.money is null then '0' else dbo.dindanbukuan.money end) as money,
  15. (case when dbo.dindanbukuan.date is null then dbo.dindan.time2 else (case when dbo.dindan.time2 > dbo.dindanbukuan.date then dbo.dindan.time2 else dbo.dindanbukuan.date end) end) as Paydate,
  16. dbo.dindanbukuan.kind,
  17. dbo.dindanbukuan.ren,
  18. dbo.dindanbukuan.bz,
  19. dbo.dindanbukuan.id,
  20. dbo.dindanbukuan.paytype,
  21. dbo.dindan.waiter1,
  22. dbo.dindan.waiter12,
  23. dbo.dindan.waiter13,
  24. dbo.dindan.waiter14,
  25. dbo.dindan.waiter2,
  26. dbo.dindan.waiter22,
  27. dbo.dindan.waiter23,
  28. dbo.dindan.waiter24,
  29. dbo.dindan.waiter3,
  30. dbo.dindan.waiter4,
  31. dbo.dindan.waiter5,
  32. dbo.dindan.waiter6,
  33. dbo.dindan.waiter7,
  34. dbo.dindan.waiter8,
  35. dbo.dindan.waiter9 from dbo.dindan
  36. left JOIN dbo.dindanbukuan ON dbo.dindan.id = dbo.dindanbukuan.id
  37. where dbo.dindan.status = 'OK'
  38. GO
  39. /****** Script for SelectTopNRows command from SSMS ******/
  40. use [db]
  41. go
  42. declare @name nvarchar(50) --员工姓名;
  43. declare @btm nvarchar(24) --开始时间;
  44. declare @etm nvarchar(24) --结束时间;
  45. set @name = '黄承武'
  46. set @btm = '2016-07-01'
  47. set @etm = '2016-07-31'
  48. SELECT
  49. [id]
  50. ,[name1]
  51. ,[name2]
  52. ,[txtype]
  53. ,[taoxiname]
  54. ,[taoxijiage]
  55. ,[money]
  56. ,[Paydate]
  57. ,[kind]
  58. ,[ren]
  59. ,[bz]
  60. ,[paytype]
  61. ,[waiter1]
  62. ,[waiter12]
  63. ,[waiter13]
  64. ,[waiter14]
  65. ,[waiter2]
  66. ,[waiter22]
  67. ,[waiter23]
  68. ,[waiter24]
  69. ,[waiter3]
  70. ,[waiter4]
  71. ,[waiter5]
  72. ,[waiter6]
  73. ,[waiter7]
  74. ,[waiter8]
  75. ,[waiter9]
  76. FROM [db].[dbo].[Payroll] where ( Paydate>=@btm and Paydate<=@etm ) and
  77. ( [waiter1]=@name --摄影
  78. or [waiter12]=@name --摄影
  79. or [waiter13]=@name --摄影
  80. or [waiter14]=@name --摄影
  81. or [waiter2]=@name --化妆
  82. or [waiter22]=@name --化妆
  83. or [waiter23]=@name --化妆
  84. or [waiter24]=@name --化妆
  85. or [waiter3]=@name --选片
  86. or [waiter4]=@name --设计
  87. or [waiter5]=@name --初修
  88. or [waiter5]=@name --接单
  89. or [waiter7]=@name --精修
  90. or [waiter8]=@name --看样
  91. or [waiter9]=@name --????
  92. or [waiter12]=@name --摄影助理
  93. or [waiter22]=@name --化妆助理
  94. )
  95. -- 计算出所有业绩总和;
  96. SELECT sum(convert(int,money)) FROM [db].[dbo].[Payroll] where ( Paydate>=@btm and Paydate<=@etm ) and (
  97. [waiter1]=@name --摄影
  98. or [waiter12]=@name --摄影
  99. or [waiter13]=@name --摄影
  100. or [waiter14]=@name --摄影
  101. or [waiter2]=@name --化妆
  102. or [waiter22]=@name --化妆
  103. or [waiter23]=@name --化妆
  104. or [waiter24]=@name --化妆
  105. or [waiter3]=@name --选片
  106. or [waiter4]=@name --设计
  107. or [waiter5]=@name --初修
  108. or [waiter5]=@name --接单
  109. or [waiter7]=@name --精修
  110. or [waiter8]=@name --看样
  111. or [waiter9]=@name --????
  112. or [waiter12]=@name --摄影助理
  113. or [waiter22]=@name --化妆助理
  114. )
  115. -- 计算出订单总金额;(不可用,这样算会出现重复叠加的订单金额)
  116. SELECT sum(convert(int,taoxijiage)) from [db].[dbo].[Payroll] where ( Paydate>=@btm and Paydate<=@etm ) and
  117. ( [waiter1]=@name --摄影
  118. or [waiter12]=@name --摄影
  119. or [waiter13]=@name --摄影
  120. or [waiter14]=@name --摄影
  121. or [waiter2]=@name --化妆
  122. or [waiter22]=@name --化妆
  123. or [waiter23]=@name --化妆
  124. or [waiter24]=@name --化妆
  125. or [waiter3]=@name --选片
  126. or [waiter4]=@name --设计
  127. or [waiter5]=@name --初修
  128. or [waiter5]=@name --接单
  129. or [waiter7]=@name --精修
  130. or [waiter8]=@name --看样
  131. or [waiter9]=@name --????
  132. or [waiter12]=@name --摄影助理
  133. or [waiter22]=@name --化妆助理
  134. )
  135. -- 计算出订单总金额(去掉重复叠加);
  136. SELECT sum(convert(int,pay)) FROM (select max(taoxijiage) as pay from [db].[dbo].[Payroll] where ( Paydate>=@btm and Paydate<=@etm ) and
  137. ( [waiter1]=@name --摄影
  138. or [waiter12]=@name --摄影
  139. or [waiter13]=@name --摄影
  140. or [waiter14]=@name --摄影
  141. or [waiter2]=@name --化妆
  142. or [waiter22]=@name --化妆
  143. or [waiter23]=@name --化妆
  144. or [waiter24]=@name --化妆
  145. or [waiter3]=@name --选片
  146. or [waiter4]=@name --设计
  147. or [waiter5]=@name --初修
  148. or [waiter5]=@name --接单
  149. or [waiter7]=@name --精修
  150. or [waiter8]=@name --看样
  151. or [waiter9]=@name --????
  152. or [waiter12]=@name --摄影助理
  153. or [waiter22]=@name --化妆助理
  154. ) and kind <> '1' group by id) a