/TempSQLTests.txt

http://github.com/khaneh/Orders · Plain Text · 510 lines · 421 code · 89 blank · 0 comment · 0 complexity · d787521a12b52cdefed88175ee05970b MD5 · raw file

  1. CREATE PROCEDURE dbo.proc_GLAccountReport
  2. @GLAccount int,
  3. @FromDate nvarchar(10),
  4. @ToDate nvarchar(10),
  5. @FromTafsil int,
  6. @ToTafsil int,
  7. @GL int
  8. AS
  9. SELECT GLRows.Tafsil, SUM(GLRows.IsCredit * GLRows.Amount) AS SumCredit, SUM(- ((GLRows.IsCredit - 1) * GLRows.Amount)) AS SumDebit, COUNT(*)
  10. AS CNT, Accounts.AccountTitle
  11. FROM (SELECT ID AS GLDoc, GLDocDate
  12. FROM GLDocs
  13. WHERE (GLDocs.IsTemporary = 1 OR
  14. GLDocs.IsChecked = 1 OR
  15. GLDocs.IsFinalized = 1) AND (GLDocDate >= @FromDate) AND (GLDocDate <= @ToDate) AND (GL = @GL ) AND (IsRemoved = 0) AND
  16. (deleted = 0)) EffectiveGLDocs INNER JOIN
  17. GLRows ON EffectiveGLDocs.GLDoc = GLRows.GLDoc INNER JOIN
  18. Accounts ON GLRows.Tafsil = Accounts.ID
  19. WHERE (GLRows.GLAccount = @GLAccount)
  20. GROUP BY GLRows.Tafsil, Accounts.AccountTitle
  21. HAVING (ISNULL(GLRows.Tafsil, 0) >= @FromTafsil) AND (ISNULL(GLRows.Tafsil, 0) <= @ToTafsil)
  22. ORDER BY Accounts.AccountTitle
  23. GO
  24. ===================================================
  25. exec proc_GLAccountReport '1303', '1383/06/01', '1383/07/01', '0', '9999999', '83'
  26. ===================================================
  27. CREATE PROCEDURE dbo.proc_GLAccountReport
  28. @GLAccount int,
  29. @FromDate nvarchar(10),
  30. @ToDate nvarchar(10),
  31. @FromTafsil int,
  32. @ToTafsil int,
  33. @GL int
  34. AS
  35. SELECT 0 AS Tafsil, SUM(GLRows.IsCredit * GLRows.Amount) AS SumCredit, SUM(- ((GLRows.IsCredit - 1) * GLRows.Amount)) AS SumDebit, COUNT(*)
  36. AS CNT, ' ãÇäÏå ÍÓÇÈ '+CONVERT(nvarchar(4),@GLAccount)+' ÞÈá ÇÒ '+@FromDate AS AccountTitle
  37. FROM (SELECT ID AS GLDoc
  38. FROM GLDocs
  39. WHERE (GLDocs.IsTemporary = 1 OR
  40. GLDocs.IsChecked = 1 OR
  41. GLDocs.IsFinalized = 1) AND (GLDocDate >= N'1383/01/01') AND (GLDocDate <= @FromDate) AND (GL = @GL) AND (IsRemoved = 0) AND
  42. (deleted = 0)) EffectiveGLDocs INNER JOIN
  43. GLRows ON EffectiveGLDocs.GLDoc = GLRows.GLDoc
  44. WHERE (1 = 1) AND (GLRows.GLAccount = @GLAccount) AND (ISNULL(GLRows.Tafsil, 0) >= @FromTafsil) AND (ISNULL(GLRows.Tafsil, 0) <= @ToTafsil)
  45. GROUP BY GLRows.GLAccount
  46. UNION
  47. SELECT GLRows.Tafsil, SUM(GLRows.IsCredit * GLRows.Amount) AS SumCredit, SUM(- ((GLRows.IsCredit - 1) * GLRows.Amount)) AS SumDebit, COUNT(*)
  48. AS CNT, Accounts.AccountTitle AS AccountTitle
  49. FROM (SELECT ID AS GLDoc, GLDocDate
  50. FROM GLDocs
  51. WHERE (GLDocs.IsTemporary = 1 OR
  52. GLDocs.IsChecked = 1 OR
  53. GLDocs.IsFinalized = 1) AND (GLDocDate >= @FromDate) AND (GLDocDate <= @ToDate) AND (GL = @GL ) AND (IsRemoved = 0) AND
  54. (deleted = 0)) EffectiveGLDocs INNER JOIN
  55. GLRows ON EffectiveGLDocs.GLDoc = GLRows.GLDoc INNER JOIN
  56. Accounts ON GLRows.Tafsil = Accounts.ID
  57. WHERE (GLRows.GLAccount = @GLAccount)
  58. GROUP BY GLRows.Tafsil, Accounts.AccountTitle
  59. HAVING (ISNULL(GLRows.Tafsil, 0) >= @FromTafsil) AND (ISNULL(GLRows.Tafsil, 0) <= @ToTafsil)
  60. ORDER BY Accounts.AccountTitle
  61. GO
  62. ===================================================
  63. SELECT GLAccounts.Name, DERIVEDTBL.totalDebit AS totalDebit, DERIVEDTBL.totalCredit AS totalCredit, GLAccounts.ID
  64. FROM (SELECT SUM(GLRows.IsCredit * GLRows.Amount) AS totalCredit, SUM(- ((GLRows.IsCredit - 1) * GLRows.Amount)) AS totalDebit,
  65. GLRows.GLAccount, COUNT(*) AS Expr1
  66. FROM GLDocs INNER JOIN
  67. GLRows ON GLDocs.ID = GLRows.GLDoc
  68. WHERE (GLDocs.IsTemporary = 1 OR
  69. GLDocs.IsChecked = 1 OR
  70. GLDocs.IsFinalized = 1) AND (GLDocs.deleted = 0) AND (GLDocs.IsRemoved = 0) AND (GLRows.deleted = 0)
  71. GROUP BY GLRows.GLAccount, GLDocs.GL
  72. HAVING (GLDocs.GL = 83)) DERIVEDTBL RIGHT OUTER JOIN
  73. GLAccounts ON DERIVEDTBL.GLAccount = GLAccounts.ID
  74. WHERE (GLAccounts.GL = 83) AND (GLAccounts.GLGroup = 1300)
  75. ORDER BY GLAccounts.ID
  76. ===================================================
  77. SELECT SUM(GLRows.IsCredit * GLRows.Amount) AS totalCredit, SUM(- ((GLRows.IsCredit - 1) * GLRows.Amount)) AS totalDebit, GLRows.GLAccount,
  78. COUNT(*) AS Expr1
  79. FROM GLDocs INNER JOIN
  80. GLRows ON GLDocs.ID = GLRows.GLDoc
  81. WHERE (GLDocs.IsTemporary = 1 OR GLDocs.IsChecked = 1 OR GLDocs.IsFinalized = 1) AND (GLDocs.deleted = 0) AND (GLDocs.IsRemoved = 0) AND (GLRows.deleted = 0)
  82. GROUP BY GLRows.GLAccount, GLDocs.GL
  83. HAVING (GLDocs.GL = 83) AND (GLRows.GLAccount = 1303)
  84. ===================================================
  85. (GLDocs.IsTemporary = 1 OR GLDocs.IsChecked = 1 OR GLDocs.IsFinalized = 1) AND (GLDocs.deleted = 0) AND (GLDocs.IsRemoved = 0) AND (GLRows.deleted = 0)
  86. ===============
  87. SELECT 0 AS Tafsil, SUM(GLRows.IsCredit * GLRows.Amount) AS SumCredit, SUM(- ((GLRows.IsCredit - 1) * GLRows.Amount)) AS SumDebit, COUNT(*) AS CNT,
  88. GLRows.GLAccount
  89. FROM (SELECT ID AS GLDoc
  90. FROM GLDocs
  91. WHERE (GLDocs.IsTemporary = 1 OR
  92. GLDocs.IsChecked = 1 OR
  93. GLDocs.IsFinalized = 1) AND (GLDocDate >= N'1383/01/01') AND (GLDocDate <= N'1383/07/10') AND (GL = 83) AND (IsRemoved = 0) AND
  94. (deleted = 0)) EffectiveGLDocs INNER JOIN
  95. GLRows ON EffectiveGLDocs.GLDoc = GLRows.GLDoc
  96. WHERE (1 = 1) AND (GLRows.GLAccount = 1303) AND (ISNULL(GLRows.Tafsil, 0) >= 0) AND (ISNULL(GLRows.Tafsil, 0) <= 999999)
  97. GROUP BY GLRows.GLAccount
  98. UNION
  99. SELECT GLRows.Tafsil, SUM(GLRows.IsCredit * GLRows.Amount) AS SumCredit, SUM(- ((GLRows.IsCredit - 1) * GLRows.Amount)) AS SumDebit, COUNT(*)
  100. AS CNT, Accounts.AccountTitle
  101. ===================================================
  102. SELECT SUM(GLRows.IsCredit * GLRows.Amount) AS SumCredit, SUM(- ((GLRows.IsCredit - 1) * GLRows.Amount)) AS SumDebit, COUNT(*) AS CNT,
  103. GLRows.GLAccount
  104. FROM (SELECT ID AS GLDoc, GLDocDate
  105. FROM GLDocs
  106. WHERE (GLDocs.IsTemporary = 1 OR
  107. GLDocs.IsChecked = 1 OR
  108. GLDocs.IsFinalized = 1) AND (GLDocDate >= N'1383/01/01') AND (GLDocDate <= N'1383/07/10') AND (GL = 83) AND (IsRemoved = 0) AND
  109. (deleted = 0)) EffectiveGLDocs INNER JOIN
  110. GLRows ON EffectiveGLDocs.GLDoc = GLRows.GLDoc
  111. WHERE (GLRows.GLAccount = 1303) AND (ISNULL(GLRows.Tafsil, 0) >= 0) AND (ISNULL(GLRows.Tafsil, 0) <= 999999)
  112. GROUP BY GLRows.GLAccount
  113. ===================================================
  114. SELECT GLRows.Tafsil, SUM(GLRows.IsCredit * GLRows.Amount) AS SumCredit, SUM(- ((GLRows.IsCredit - 1) * GLRows.Amount)) AS SumDebit, COUNT(*) AS CNT
  115. FROM (SELECT ID AS GLDoc, GLDocDate
  116. FROM GLDocs
  117. WHERE (GLDocs.IsTemporary = 1 OR
  118. GLDocs.IsChecked = 1 OR
  119. GLDocs.IsFinalized = 1) AND (GLDocDate >= N'1383/06/01') AND (GLDocDate <= N'1383/07/01') AND (GL = 83) AND (IsRemoved = 0) AND
  120. (deleted = 0)) EffectiveGLDocs INNER JOIN
  121. GLRows ON EffectiveGLDocs.GLDoc = GLRows.GLDoc
  122. WHERE (GLRows.GLAccount = 1303)
  123. GROUP BY GLRows.Tafsil
  124. HAVING (ISNULL(GLRows.Tafsil, 0) >= 0) AND (ISNULL(GLRows.Tafsil, 0) <= 999999)
  125. ORDER BY GLRows.Tafsil
  126. GO
  127. ===========================
  128. SELECT *
  129. FROM (SELECT ID AS GLDoc, GLDocDate
  130. FROM GLDocs
  131. WHERE (GLDocs.IsTemporary = 1 OR
  132. GLDocs.IsChecked = 1 OR
  133. GLDocs.IsFinalized = 1) AND (GLDocDate <= N'1383/07/12') AND (GLDocDate >= N'1383/06/01') AND (GL = 83) AND (IsRemoved = 0) AND
  134. (deleted = 0)) EffectiveGLDocs INNER JOIN
  135. GLRows ON EffectiveGLDocs.GLDoc = GLRows.GLDoc
  136. WHERE (GLRows.GLAccount = 1303)
  137. ORDER BY EffectiveGLDocs.GLDocDate
  138. ============
  139. ============
  140. SELECT EffGLAccBal.*
  141. FROM GLAccounts INNER JOIN
  142. (SELECT SUM(GLRows.IsCredit * GLRows.Amount) AS totalCredit, SUM(- ((GLRows.IsCredit - 1) * GLRows.Amount)) AS totalDebit,
  143. GLRows.GLAccount, COUNT(*) AS CNT
  144. FROM GLDocs INNER JOIN
  145. GLRows ON GLDocs.ID = GLRows.GLDoc
  146. WHERE (GLDocs.IsTemporary = 1 OR
  147. GLDocs.IsChecked = 1 OR
  148. GLDocs.IsFinalized = 1) AND (GLDocs.deleted = 0) AND (GLDocs.IsRemoved = 0) AND (GLRows.deleted = 0)
  149. GROUP BY GLRows.GLAccount, GLDocs.GL
  150. HAVING (GLDocs.GL = 83)) EffGLAccBal ON GLAccounts.ID = EffGLAccBal.GLAccount INNER JOIN
  151. GLAccountGroups ON GLAccounts.GLGroup = GLAccountGroups.ID INNER JOIN
  152. GLAccountSuperGroups ON GLAccountGroups.GLSuperGroup = GLAccountSuperGroups.ID
  153. WHERE (GLAccountSuperGroups.GL = 83) AND (GLAccountGroups.GL = 83) AND (GLAccounts.GL = 83)
  154. ============================
  155. ============================
  156. SELECT ISNULL(Remains.GLAccount, EffGLRows.GLAccount) AS GLAccount, EffGLRows.GLDoc, EffGLRows.GLDocID, EffGLRows.GLDocDate,
  157. EffGLRows.Amount, EffGLRows.IsCredit, EffGLRows.Description, ISNULL(Remains.remCred, 0) AS remainedCredit, ISNULL(Remains.remDeb, 0)
  158. AS remainedDebit
  159. FROM (SELECT isnull(SUM(IsCredit * Amount), 0) AS remCred, isnull(SUM(- ((IsCredit - 1) * Amount)), 0) AS remDeb, GLAccount
  160. FROM EffectiveGLRows
  161. WHERE (GL = 83) AND (GLDocDate < N'1383/08/01') AND (Tafsil = 215256)
  162. GROUP BY GLAccount) Remains FULL OUTER JOIN
  163. (SELECT GLDoc, GLDocID, GLDocDate, Amount, IsCredit, Description, GLAccount
  164. FROM EffectiveGLRows
  165. WHERE (Tafsil = 215256) AND (GL = 83) AND (GLDocDate <= N'1383/08/09') AND (GLDocDate >= N'1383/08/09')) EffGLRows ON
  166. Remains.GLAccount = EffGLRows.GLAccount
  167. ===============================
  168. ===============================
  169. SELECT DRV.GLAcc AS GLAccount, GLAccounts.Name, DRV.GLDoc, DRV.GLDocID, DRV.GLDocDate, DRV.Amount, DRV.IsCredit, DRV.Description,
  170. DRV.remainedCredit, DRV.remainedDebit
  171. FROM (SELECT ISNULL(Remains.GLAccount, EffGLRows.GLAccount) AS GLAcc, ISNULL(Remains.remCred, 0) AS remainedCredit, ISNULL(Remains.remDeb,
  172. 0) AS remainedDebit, EffGLRows.*
  173. FROM (SELECT ISNULL(SUM(IsCredit * Amount), 0) AS remCred, ISNULL(SUM(- ((IsCredit - 1) * Amount)), 0) AS remDeb, GLAccount
  174. FROM EffectiveGLRows
  175. WHERE (GL = 83) AND (GLDocDate < N'1383/08/01') AND (Tafsil = 215256)
  176. GROUP BY GLAccount) Remains FULL OUTER JOIN
  177. (SELECT GLDoc, GLDocID, GLDocDate, Amount, IsCredit, Description, GLAccount
  178. FROM EffectiveGLRows
  179. WHERE (Tafsil = 215256) AND (GL = 83) AND (GLDocDate <= N'1383/08/09') AND (GLDocDate >= N'1383/08/09')) EffGLRows ON
  180. Remains.GLAccount = EffGLRows.GLAccount) DRV INNER JOIN
  181. GLAccounts ON DRV.GLAcc = GLAccounts.ID
  182. WHERE (GLAccounts.GL = 83)
  183. ===============================
  184. ===============================
  185. ===============================
  186. ===============================
  187. SELECT GLRows.Amount, GLRows.Description, GLRows.Ref1, GLRows.Ref2, GLRows.IsCredit, GLDocs.GLDocDate
  188. FROM GLRows INNER JOIN GLDocs ON GLRows.GLDoc = GLDocs.ID
  189. WHERE (GLRows.ID IN (
  190. SELECT MAX(GLRows.ID) AS MaxID
  191. FROM GLRows INNER JOIN GLDocs ON GLRows.GLDoc = GLDocs.ID
  192. WHERE (GLRows.deleted = 0) AND (GLRows.Ref1 <> '') AND (GLRows.GLAccount = 17001) AND (GLRows.Tafsil IS NULL) AND (GLDocs.IsRemoved = 0) AND (GLDocs.deleted = 0) AND (GLDocs.GL = 83)
  193. GROUP BY GLRows.Ref1, GLRows.Ref2, GLRows.Amount, GLRows.GLAccount, GLRows.Tafsil, GLDocs.GL HAVING (COUNT(GLRows.Ref1) % 2 = 1)
  194. )
  195. )
  196. ORDER BY GLRows.Ref2, GLRows.ID
  197. ===============================
  198. SELECT Amount, Description, Ref1, Ref2, IsCredit, GLDocDate
  199. FROM EffectiveGLRows
  200. WHERE (ID IN
  201. (SELECT MAX(ID) AS MaxID
  202. FROM EffectiveGLRows
  203. GROUP BY GLAccount, Tafsil, Amount, Ref1, Ref2, GL
  204. HAVING (GLAccount = 17001) AND (Tafsil IS NULL) AND (GL = 83) AND (Ref1 <> N'') AND (COUNT(Ref1) % 2 = 1)))
  205. ORDER BY Ref2, ID
  206. ===============================
  207. SUM REMAINED:
  208. SELECT ISNULL(SUM(IsCredit * Amount), 0) AS remCred, ISNULL(SUM(- ((IsCredit - 1) * Amount)), 0) AS remDeb
  209. FROM EffectiveGLRows
  210. WHERE (ID IN(
  211. SELECT MAX(ID) AS MaxID
  212. FROM EffectiveGLRows
  213. GROUP BY GLAccount, Tafsil, Amount, Ref1, Ref2, GL, Ref1, Ref2
  214. HAVING (GLAccount = 17001) AND (Tafsil IS NULL) AND (GL = 83) AND (Ref1 <> N'') AND (COUNT(Ref1) % 2 = 1) AND (Ref2 < N'1382/01/01')
  215. ))
  216. ===============================
  217. SELECT ISNULL(SUM(IsCredit * Amount), 0) AS remCred, ISNULL(SUM(- ((IsCredit - 1) * Amount)), 0) AS remDeb
  218. FROM EffectiveGLRows
  219. WHERE (ID IN
  220. (SELECT MAX(ID) AS MaxID
  221. FROM EffectiveGLRows
  222. GROUP BY GLAccount, Tafsil, Amount, Ref1, Ref2, GL, Ref1, Ref2
  223. HAVING (GLAccount = 17001) AND (Tafsil IS NULL) AND (GL = 83) AND (Ref1 <> N'') AND (COUNT(Ref1) % 2 = 1) AND (Ref2 < N'')))
  224. ===============================
  225. ===============================
  226. CREATE PROCEDURE dbo.proc_CheqBook_Partial
  227. @GLAccount int,
  228. @Tafsil int,
  229. @FromDate nvarchar(10),
  230. @ToDate nvarchar(10),
  231. @GL int,
  232. @ShowRemained bit
  233. AS
  234. DECLARE
  235. @remainedCredit int,
  236. @remainedDebit int
  237. SELECT @remainedCredit=ISNULL(SUM(IsCredit * Amount), 0) , @remainedDebit=ISNULL(SUM(- ((IsCredit - 1) * Amount)), 0)
  238. FROM EffectiveGLRows
  239. WHERE (ID IN(
  240. SELECT MAX(ID) AS MaxID
  241. FROM EffectiveGLRows
  242. GROUP BY GLAccount, Tafsil, Amount, Ref1, Ref2, GL, Ref1, Ref2
  243. HAVING (GLAccount = 17001) AND (Tafsil IS NULL) AND (GL = 83) AND (Ref1 <> N'') AND (COUNT(Ref1) % 2 = 1) AND (Ref2 < N'1382/01/01')
  244. ))
  245. IF @Tafsil=''
  246. BEGIN
  247. SELECT Amount, Description, Ref1, Ref2, IsCredit, GLDocDate
  248. FROM EffectiveGLRows
  249. WHERE (ID IN
  250. (SELECT MAX(ID) AS MaxID
  251. FROM EffectiveGLRows
  252. GROUP BY GLAccount, Tafsil, Amount, Ref1, Ref2, GL
  253. HAVING (GLAccount = @GLAccount) AND (Tafsil IS NULL) AND (GL = @GL) AND (Ref1 <> N'') AND (COUNT(Ref1) % 2 = 1)) AND (Ref2 >= @FromDate) AND (Ref2 <= @ToDate))
  254. ORDER BY Ref2, ID
  255. END
  256. ELSE
  257. BEGIN
  258. SELECT Amount, Description, Ref1, Ref2, IsCredit, GLDocDate
  259. FROM EffectiveGLRows
  260. WHERE (ID IN
  261. (SELECT MAX(ID) AS MaxID
  262. FROM EffectiveGLRows
  263. GROUP BY GLAccount, Tafsil, Amount, Ref1, Ref2, GL
  264. HAVING (GLAccount = @GLAccount) AND (Tafsil = @Tafsil ) AND (GL = @GL) AND (Ref1 <> N'') AND (COUNT(Ref1) % 2 = 1)) AND (Ref2 >= @FromDate) AND (Ref2 <= @ToDate))
  265. ORDER BY Ref2, ID
  266. END
  267. GO
  268. ===============================
  269. ===============================
  270. SELECT ISNULL(CONVERT(tinyint, Invoices.IsA), 2) AS IsA, Accounts.IsADefault, ARItems.Link
  271. FROM Accounts INNER JOIN
  272. ARItems ON ARItems.Account = Accounts.ID LEFT OUTER JOIN
  273. ARItemsRelations ON ARItemsRelations.CreditARItem = ARItems.ID LEFT OUTER JOIN
  274. ARItems ARItems_2 ON ARItems_2.ID = ARItemsRelations.DebitARItem LEFT OUTER JOIN
  275. Invoices ON ARItems_2.Link = Invoices.ID
  276. WHERE (ARItems.Type = 2) AND (ARItems.Link = 23681)
  277. ===============================
  278. ===============================
  279. SELECT *
  280. FROM EffectiveGLRows
  281. WHERE (Ref1 IN
  282. (SELECT DISTINCT Ref1
  283. FROM EffectiveGLRows
  284. WHERE (Ref1 <> '') AND (GL = 83) AND (GLAccount LIKE '4200%'))) AND (Ref1 NOT IN
  285. (SELECT DISTINCT Ref1
  286. FROM EffectiveGLRows
  287. WHERE (Ref1 <> '') AND (GL = 83) AND (GLAccount LIKE '4200%') AND SYS IS NOT NULL))
  288. ORDER BY Ref1, ID DESC
  289. ===============================
  290. *** GLAccount wich has worked with 4200%
  291. SELECT DISTINCT GLAccount
  292. FROM EffectiveGLRows
  293. WHERE (Ref1 IN
  294. (SELECT DISTINCT Ref1
  295. FROM EffectiveGLRows
  296. WHERE (Ref1 <> '') AND (GL = 83) AND (GLAccount LIKE '4200%'))) AND (GL = 83)
  297. ORDER BY GLAccount
  298. ===============================
  299. SELECT DISTINCT GLAccount
  300. FROM EffectiveGLRows
  301. WHERE (Ref1 IN
  302. (SELECT DISTINCT Ref1
  303. FROM EffectiveGLRows
  304. WHERE (Ref1 <> '') AND (GL = 83))) AND (GL = 83) AND (Ref1 NOT IN
  305. (SELECT DISTINCT Ref1
  306. FROM EffectiveGLRows
  307. WHERE (Ref1 <> '') AND (GL = 83) AND (SYS IS NOT NULL)))
  308. ORDER BY GLAccount
  309. ===============================
  310. ===============================
  311. SELECT Accounts.ID AS AccID, Accounts.AccountTitle, SUM(InvoiceLines.Price) AS Price, SUM(InvoiceLines.Discount) AS Discount, SUM(InvoiceLines.Reverse)
  312. AS Reverse, InvoiceItemCategories.ID AS CatID, InvoiceItemCategories.Name AS CatName, COUNT(*) AS InvQtty
  313. FROM InvoiceItemCategoryRelations INNER JOIN
  314. InvoiceItems ON InvoiceItemCategoryRelations.InvoiceItem = InvoiceItems.ID INNER JOIN
  315. InvoiceItemCategories ON InvoiceItemCategoryRelations.InvoiceItemCategory = InvoiceItemCategories.ID INNER JOIN
  316. InvoiceLines ON InvoiceItems.ID = InvoiceLines.Item INNER JOIN
  317. Invoices ON InvoiceLines.Invoice = Invoices.ID INNER JOIN
  318. Accounts ON Invoices.Customer = Accounts.ID
  319. WHERE (Invoices.Voided = 0) AND (Invoices.Issued = 1) AND (Invoices.IssuedDate >= N'1382/08/20') AND (Invoices.IssuedDate <= N'1383/08/20')
  320. GROUP BY Accounts.AccountTitle, InvoiceItemCategories.ID, InvoiceItemCategories.Name, Accounts.ID
  321. HAVING (InvoiceItemCategories.ID > 2)
  322. ORDER BY AccID, CatID
  323. ===============================
  324. SELECT Kid.AccID, Kid.AccountTitle, Kid.Price, Kid.Discount, Kid.Reverse, Kid.CatID, Kid.CatName, Kid.InvQtty, COUNT(*) AS TotalInvQtty,
  325. SUM(Invoices.TotalReceivable) AS TotalReceivable, SUM(Invoices.TotalDiscount) AS TotalDiscount, SUM(Invoices.TotalReverse)
  326. AS TotalReverse
  327. FROM (SELECT Accounts.ID AS AccID, Accounts.AccountTitle, SUM(InvoiceLines.Price) AS Price, SUM(InvoiceLines.Discount) AS Discount,
  328. SUM(InvoiceLines.Reverse) AS Reverse, InvoiceItemCategories.ID AS CatID, InvoiceItemCategories.Name AS CatName, COUNT(*)
  329. AS InvQtty
  330. FROM InvoiceItemCategoryRelations INNER JOIN
  331. InvoiceItems ON InvoiceItemCategoryRelations.InvoiceItem = InvoiceItems.ID INNER JOIN
  332. InvoiceItemCategories ON InvoiceItemCategoryRelations.InvoiceItemCategory = InvoiceItemCategories.ID INNER JOIN
  333. InvoiceLines ON InvoiceItems.ID = InvoiceLines.Item INNER JOIN
  334. Invoices ON InvoiceLines.Invoice = Invoices.ID INNER JOIN
  335. Accounts ON Invoices.Customer = Accounts.ID
  336. WHERE (Invoices.Voided = 0) AND (Invoices.Issued = 1) AND (Invoices.IssuedDate >= N'1382/08/20') AND (Invoices.IssuedDate <= N'1383/08/20')
  337. GROUP BY Accounts.AccountTitle, InvoiceItemCategories.ID, InvoiceItemCategories.Name, Accounts.ID
  338. HAVING (InvoiceItemCategories.ID > 2)) Kid INNER JOIN
  339. Invoices ON Kid.AccID = Invoices.Customer
  340. GROUP BY Kid.AccID, Kid.AccountTitle, Kid.Price, Kid.Discount, Kid.Reverse, Kid.CatID, Kid.CatName, Kid.InvQtty, Invoices.Issued, Invoices.Voided
  341. HAVING (Invoices.Issued = 1) AND (Invoices.Voided = 0)
  342. ORDER BY Kid.AccID, Kid.CatID
  343. ===============================
  344. SELECT InvoiceLines.Item
  345. FROM InvoiceLines INNER JOIN
  346. Invoices ON InvoiceLines.Invoice = Invoices.ID
  347. WHERE (Invoices.Voided = 0) AND (Invoices.Issued = 1) AND (Invoices.IssuedDate >= N'1382/08/20') AND (Invoices.IssuedDate <= N'1383/08/20')
  348. ===============================
  349. SELECT ID
  350. FROM InvoiceItems
  351. WHERE (ID IN
  352. (SELECT InvoiceLines.Item
  353. FROM InvoiceLines INNER JOIN
  354. Invoices ON InvoiceLines.Invoice = Invoices.ID
  355. WHERE (Invoices.Voided = 0) AND (Invoices.Issued = 1) AND (Invoices.IssuedDate >= N'1382/08/20') AND
  356. (Invoices.IssuedDate <= N'1383/08/20'))) AND (ID NOT IN
  357. (SELECT Item_ID
  358. FROM InventoryItemCategoryRelations
  359. WHERE (Cat_ID > 2)))
  360. ===============================
  361. ===============================
  362. ===============================
  363. ===============================
  364. ===============================
  365. ===============================
  366. ===============================
  367. ===============================
  368. ===============================
  369. ===============================
  370. ===============================
  371. SELECT *
  372. FROM (SELECT TOP 10 Accounts.ID AS AccID, Accounts.AccountTitle, SUM(InvoiceLines.Price) AS Price, SUM(InvoiceLines.Discount) AS Discount,
  373. SUM(InvoiceLines.Reverse) AS Reverse, InvoiceItemCategories.ID AS CatID, COUNT(*) AS InvQtty
  374. FROM InvoiceItemCategoryRelations INNER JOIN
  375. InvoiceItems ON InvoiceItemCategoryRelations.InvoiceItem = InvoiceItems.ID INNER JOIN
  376. InvoiceItemCategories ON InvoiceItemCategoryRelations.InvoiceItemCategory = InvoiceItemCategories.ID INNER JOIN
  377. InvoiceLines ON InvoiceItems.ID = InvoiceLines.Item INNER JOIN
  378. Invoices ON InvoiceLines.Invoice = Invoices.ID INNER JOIN
  379. Accounts ON Invoices.Customer = Accounts.ID
  380. WHERE (Invoices.IssuedDate >= N'1382/08/20') AND (Invoices.IssuedDate <= N'1383/08/20') AND (Invoices.Voided = 0) AND (Invoices.Issued = 1)
  381. GROUP BY Accounts.AccountTitle, InvoiceItemCategories.ID, Accounts.ID
  382. HAVING (InvoiceItemCategories.ID = 3)
  383. ORDER BY COUNT(*) DESC, SUM(InvoiceLines.Price) DESC) TOPSORTED
  384. ===============================
  385. SELECT Ref1, Ref2, Amount, IsCredit
  386. FROM GLRows
  387. WHERE (GLAccount = 15004) AND (IsCredit = 1) AND (Ref1 <> '') AND (SYS IS NULL)
  388. ===============================
  389. SELECT *
  390. FROM GLRows
  391. WHERE (ID IN
  392. (SELECT GLRows.ID
  393. FROM (SELECT Ref1, Ref2, Amount
  394. FROM GLRows
  395. WHERE (GLAccount IN (49001,49010,49011,49012,49013,15004)) AND (IsCredit = 1) AND (Ref1 <> '') AND (SYS IS NULL)) CHQ INNER JOIN
  396. GLRows ON CHQ.Ref1 = GLRows.Ref1 AND CHQ.Ref2 = GLRows.Ref2 AND CHQ.Amount = GLRows.Amount))
  397. ===============================
  398. UPDATE GLRows
  399. SET IsCredit = CONVERT(bit, 1 - IsCredit)
  400. WHERE (ID IN
  401. (SELECT GLRows.ID
  402. FROM (SELECT Ref1, Ref2, Amount
  403. FROM GLRows
  404. WHERE (GLAccount IN (49001,49010,49011,49012,49013,15004)) AND (IsCredit = 1) AND (Ref1 <> '') AND (SYS IS NULL)) CHQ INNER JOIN
  405. GLRows ON CHQ.Ref1 = GLRows.Ref1 AND CHQ.Ref2 = GLRows.Ref2 AND CHQ.Amount = GLRows.Amount))
  406. ===============================
  407. ===============================
  408. ===============================
  409. ===============================
  410. ===============================
  411. ===============================
  412. ===============================
  413. ===============================
  414. ===============================
  415. ===============================
  416. ===============================
  417. ===============================
  418. ===============================
  419. ===============================
  420. ===============================
  421. ===============================