03_summary_queries.sql 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. -- =====================================================
  2. -- 销售订单毛利统计 - QuickBI汇总查询SQL
  3. -- =====================================================
  4. -- 1. 合计(全部数据)
  5. SELECT
  6. SUM(num) AS num,
  7. SUM(should_amt) AS should_amt,
  8. SUM(cost_amt) AS cost_amt,
  9. SUM(profit_amt) AS profit_amt,
  10. ROUND(SUM(profit_amt) / SUM(cost_amt + profit_amt) * 100, 2) AS profit_rate,
  11. SUM(sum_price) AS sum_price,
  12. ROUND(AVG(REPLACE(discount, '%', '')), 2) AS discount,
  13. SUM(blq_amt) AS blq_amt,
  14. SUM(pay_amt) AS pay_amt,
  15. SUM(pay_num) AS pay_num,
  16. SUM(pay_cost_price) AS pay_cost_price,
  17. SUM(pay_profit_amt) AS pay_profit_amt
  18. FROM fact_fee_grossprofit
  19. WHERE sync_date BETWEEN '2025-01-01' AND '2026-04-12';
  20. -- 2. 按月份汇总
  21. SELECT
  22. month,
  23. SUM(num) AS num,
  24. SUM(should_amt) AS should_amt,
  25. SUM(cost_amt) AS cost_amt,
  26. SUM(profit_amt) AS profit_amt,
  27. SUM(sum_price) AS sum_price,
  28. SUM(blq_amt) AS blq_amt,
  29. SUM(pay_amt) AS pay_amt,
  30. SUM(pay_num) AS pay_num,
  31. SUM(pay_cost_price) AS pay_cost_price,
  32. SUM(pay_profit_amt) AS pay_profit_amt
  33. FROM fact_fee_grossprofit
  34. WHERE sync_date BETWEEN '2025-01-01' AND '2026-04-12'
  35. GROUP BY month
  36. ORDER BY month;
  37. -- 3. 按诊所汇总
  38. SELECT
  39. org_name,
  40. SUM(num) AS num,
  41. SUM(should_amt) AS should_amt,
  42. SUM(cost_amt) AS cost_amt,
  43. SUM(profit_amt) AS profit_amt,
  44. SUM(sum_price) AS sum_price,
  45. SUM(blq_amt) AS blq_amt,
  46. SUM(pay_amt) AS pay_amt,
  47. SUM(pay_num) AS pay_num,
  48. SUM(pay_cost_price) AS pay_cost_price,
  49. SUM(pay_profit_amt) AS pay_profit_amt
  50. FROM fact_fee_grossprofit
  51. WHERE sync_date BETWEEN '2025-01-01' AND '2026-04-12'
  52. GROUP BY org_name
  53. ORDER BY SUM(should_amt) DESC;
  54. -- 4. 按收费项目汇总
  55. SELECT
  56. name,
  57. fee_class,
  58. SUM(num) AS num,
  59. SUM(should_amt) AS should_amt,
  60. SUM(cost_amt) AS cost_amt,
  61. SUM(profit_amt) AS profit_amt,
  62. SUM(sum_price) AS sum_price
  63. FROM fact_fee_grossprofit
  64. WHERE sync_date BETWEEN '2025-01-01' AND '2026-04-12'
  65. GROUP BY name, fee_class
  66. ORDER BY SUM(should_amt) DESC
  67. LIMIT 50;
  68. -- 5. 按集团汇总
  69. SELECT
  70. group_name,
  71. SUM(num) AS num,
  72. SUM(should_amt) AS should_amt,
  73. SUM(cost_amt) AS cost_amt,
  74. SUM(profit_amt) AS profit_amt,
  75. SUM(sum_price) AS sum_price,
  76. SUM(blq_amt) AS blq_amt,
  77. SUM(pay_amt) AS pay_amt,
  78. SUM(pay_num) AS pay_num
  79. FROM fact_fee_grossprofit
  80. WHERE sync_date BETWEEN '2025-01-01' AND '2026-04-12'
  81. GROUP BY group_name
  82. ORDER BY SUM(should_amt) DESC;
  83. -- =====================================================
  84. -- 参数说明:
  85. -- sync_date: 同步日期,按天分区
  86. -- month: 月份 (2025-01格式)
  87. -- org_name: 诊所名称
  88. -- group_name: 集团名称
  89. -- name: 收费项目名称
  90. -- fee_class: 收费分类
  91. -- =====================================================