1

我在 MySQL 中执行了一个查询,例如 -

SELECT  
p.patient_id, p.name, pt.testresult, pt.reffby, t.testname , rf.refrange  
FROM patient AS p  
LEFT JOIN patienttest pt ON p.patient_id = pt.patient_id  
LEFT JOIN test t ON pt.testcode = t.testcode  
LEFT JOIN referencerange rf ON t.test_id = rf.test_id  
WHERE p.patient_id = 10  
AND pt.parent_id = 2 ;

我得到了这样的结果 -

+------------+------------+------------+--------+-----------+---------------------+  
| patient_id | name       | testresult | reffby | testname  | refrange            |  
+------------+------------+------------+--------+-----------+---------------------+ 
|         10 | Rex Desuza | -ve        | self   | A:G RATIO | 15-20 for children  |
|         10 | Rex Desuza | -ve        | self   | A:G RATIO | 30-60 for adults    |
|         10 | Rex Desuza | -ve        | self   | A:G RATIO | 100 - 200 for women |
|         10 | Rex Desuza | -ve        | self   | ALBUMIN   | 20-30 for men       |
|         10 | Rex Desuza | -ve        | self   | ALBUMIN   | 30-60 for adults    |
|         10 | Rex Desuza | -ve        | self   | ALBUMIN   | 100 - 200 for women |
+------------+------------+------------+--------+-----------+---------------------+ 

但我不希望列中的重复值(列中的唯一值在我的报告中显示),即像这种格式 -

+------------+------------+------------+--------+-----------+---------------------+
| patient_id | name       | testresult | reffby | testname  | refrange            |
+------------+------------+------------+--------+-----------+---------------------+
|         10 | Rex Desuza | -ve        | self   | A:G RATIO | 15-20 for children  |
|            |            |            |        |           | 30-60 for adults    |
|            |            |            |        |           | 100 - 200 for women |
|            |            | -ve        |        | ALBUMIN   | 20-30 for men       |
|            |            |            |        |           | 30-60 for adults    |
|            |            |            |        |           | 100 - 200 for women |
+------------+------------+------------+--------+-----------+---------------------+

我必须以上述格式显示此结果。请告诉我该怎么做?

如果在服务器上不可能,那么请告诉我如何通过iReport实现这种格式?

如果我取消选中文本字段的复选框“打印重复值”属性,则不会为“ALBUMIN”测试显示测试结果“-ve”,因为它与“A:G Ratio”测试结果相同。而且我想显示两个测试的测试结果,即使它们相同。请简要介绍如何实现?

4

2 回答 2

2

在 Ireport 中,您可以很容易地做到这一点,您只需取消选中文本字段的“打印重复值”复选框属性。

于 2013-03-19T11:51:59.857 回答
0

这是一个有点普遍的要求。这篇文章显示了非常相似的东西。

关键思想是这样的:

  1. 创建一个群组patient_id
  2. 在+上创建一个result_and_name在 iReport(而不是 SQL)中调用的组。testresulttestname
  3. 不要显示任一组的页眉或页脚。
  4. 时显示所有字段值$V{patient_id_COUNT} == 1
  5. 仅以refrange其他方式显示,除了:
  6. 显示字段testresulttestnamerefrange何时$V{result_and_name_COUNT} == 1

第 4、5 和 6 行是使用 Print When 表达式完成的。

警告:您的查询不显示排序,但需要排序才能使其有意义。

于 2013-03-25T07:17:30.200 回答