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を使用してこの形式を実現する方法を教えてください。

テキストフィールドのチェックボックス「繰り返し値を印刷」プロパティのチェックを外すと、テスト結果「-ve」は「A:G Ratio」テスト結果と同じであるため、「ALBUMIN」テストに表示されません。そして、それらが同じであっても、両方のテストのテスト結果を表示したいと思います。それを達成する方法を教えてください。

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. フィールドtestresulttestname、およびrefrangeいつ表示するか$V{result_and_name_COUNT} == 1

行 4、5、および 6 は、Print When 式を使用して実行されます。

警告: クエリは順序付けを示していませんが、これを理解するには順序付けが必要です。

于 2013-03-25T07:17:30.200 に答える