我在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中进行查询并显示在表格中。
答案 0 :(得分:0)
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 |
答案 1 :(得分:0)
这就是我提出的问题:
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
这让我很接近,其余的都是在报告设计师中完成的。我添加了一个儿童组。我很高兴它的出现方式。看样本报告,忽略数据,我只是扔了一些东西。