【问题标题】:Visual Studio 2015 Report Designer nested dataVisual Studio 2015 报表设计器嵌套数据
【发布时间】:2017-02-05 05:07:28
【问题描述】:

我在 MySQL 中有数据,例如:

+----+----------+--------+
| Id | grade    | defect |
+----+----------+--------+
| 1  | Grade #2 | dented |
+----+----------+--------+
| 1  | Grade #3 |        |
+----+----------+--------+
| 1  | Grade #4 | dented |
+----+----------+--------+
| 1  | Grade #5 |        |
+----+----------+--------+
| 1  | Grade #4 | short  |
+----+----------+--------+
| 1  | Grade #5 |        |
+----+----------+--------+
| 1  | Grade #1 | short  |
+----+----------+--------+
| 1  | Grade #6 |        |
+----+----------+--------+
| 1  | Grade #2 | broken |
+----+----------+--------+
| 1  | Grade #2 | long   |
+----+----------+--------+
| 1  | Grade #3 |        |
+----+----------+--------+

我想在 Visual Studio 报表设计器中创建报表。我可以创建一些查询并生成如下报告:

+----------------------+
| Grade          Count |
+----------------------+
| Grade #1       1     |
+----------------------+
| Grade #2       3     |
+----------------------+
| Grade #3       2     |
+----------------------+
| Grade #4       2     |
+----------------------+
| Grade #5       2     |
+----------------------+
| Grade #6       1     |
+----------------------+
| Total          11    |
+----------------------+
|                      |
+----------------------+
| Defect         Count |
+----------------------+
| dented         2     |
+----------------------+
| short          2     |
+----------------------+
| broken         1     |
+----------------------+
| long           1     |
+----------------------+
| Total          6     |
+----------------------+

但是,我想要更像这样的东西:

+-----------------------------+
| Grade                 Count |
+-----------------------------+
| Grade #1              1     |
+-----------------------------+
|     Short                   |
+-----------------------------+
| Grade #2              3     |
+-----------------------------+
|     dented                  |
+-----------------------------+
|     broken                  |
+-----------------------------+
|     long                    |
+-----------------------------+
| Grade #3              2     |
+-----------------------------+
| Grade #4              2     |
+-----------------------------+
|     dented                  |
+-----------------------------+
|     short                   |
+-----------------------------+
| Grade #5              2     |
+-----------------------------+
| Grade #6              1     |
+-----------------------------+
| Total                 11    |
+-----------------------------+

我确信这是可能的,但我不知道该怎么做。有人可以指出我正确的方向吗?同样,我正在使用 Visual Studio 2015、mysql、vb.net 和报表设计器。我看到提到了团体、孩子/父母等,但我看不出有什么方法可以做到这一点。提前致谢。哎呀,现在我很乐意在 mysql 中进行查询并显示在表格中。

【问题讨论】:

    标签: mysql vb.net visual-studio-2015 reporting


    【解决方案1】:

    MySQL 的 GROUP_CONCAT() 可以为您提供包含您想要的信息的内容,尽管不是您输出的确切格式:

    SELECT grade,
           COUNT(*) AS defect_count,
           GROUP_CONCAT(COALESCE(defect, '')) AS defects
    FROM yourTable
    GROUP BY grade
    

    输出:

    Grade #1 | 1 | short
    Grade #2 | 3 | dented, broken, long
    Grade #3 | 2 |
    Grade #4 | 2 | dented, short
    Grade #5 | 2 |
    Grade #6 | 1 |
    

    【讨论】:

    • concat 的问题是它吞噬了东西方的房地产。这是我正在重写的应用程序的当前问题。如果我得到太多独特的缺陷,它将不适合页面。我宁愿尝试做北/南,那只是另一页。不过感谢您的建议。
    【解决方案2】:

    这是我想出的,查询:

    SELECT 
    Grade,
    SUM(Plated) AS Plated,
    SUM(iF(Reject_Reason <> "", 1, 0)) AS Rejects,
    Reject_Reason AS `Name`,
    COUNT(Reject_Reason) As `Count`
     FROM
    sorting.data
    WHERE
    job_name = @JobName
    GROUP BY Grade, Reject_Reason
    

    这让我很接近,其余的都在报表设计器中完成。我添加了一个子组。我对它的结果很满意。看示例报告,忽略数据,我只是在里面扔了一些东西。

    Report setup, child groupsample report

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-19
      • 2018-04-04
      • 1970-01-01
      相关资源
      最近更新 更多