Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Đặt giá trị lặp lại thành 0 trong khi để nguyên giá trị đầu tiên

Thêm vào sql SOITEM."SOID" (chúng tôi kiểm tra xem điều này có bị trùng lặp không), bạn sẽ có một trường

<field name="SOID" class="java.lang.Integer"/>

Tạo nhóm trên SOID

<group name="SOID">
    <groupExpression><![CDATA[$F{SOID}]]></groupExpression>
</group>

Sau đó, tạo biến thiết lập lại đó với nhóm đếm sự xuất hiện của SOID

<variable name="SOID_Count" class="java.lang.Integer" resetType="Group" resetGroup="SOID" calculation="Count">
    <variableExpression><![CDATA[$F{SOID}]]></variableExpression>
</variable>

Trình tự trong jrxml của mã này sẽ là

<field name="SOID" class="java.lang.Integer"/>
<variable name="SOID_Count" class="java.lang.Integer" resetType="Group" resetGroup="SOID" calculation="Count">
    <variableExpression><![CDATA[$F{SOID}]]></variableExpression>
</variable>
<group name="SOID">
    <groupExpression><![CDATA[$F{SOID}]]></groupExpression>
</group>

Biến này hiện có thể được sử dụng để đánh giá xem bạn có SOID trùng lặp hay không, biến này sẽ là > 1 khi trùng lặp SOID

Ví dụ trong tổng số textField hiển thị 0 nếu SOID trùng lặp

<textField pattern="###0">
    <reportElement x="143" y="0" width="105" height="20" uuid="a0e2ae10-906e-4d0f-aebd-30fc0c694aca">
    </reportElement>
    <textElement textAlignment="Right" verticalAlignment="Middle"/>
    <textFieldExpression><![CDATA[$V{SOID_Count}<=1?$F{SOITEM_UNITPRICE}:0]]></textFieldExpression>
</textField>

Ngày bạn muốn cải thiện báo cáo của mình, chỉ cần thêm groupHeader nhóm của bạn và sau đó đặt textField's vào nhóm này




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhóm theo tối đa (thời gian) mysql

  2. Hàm PI () MySQL - Trả về giá trị của π (pi)

  3. Nhận câu lệnh chèn cho hàng hiện có trong MySQL

  4. Làm thế nào để kiểm tra bản ghi hiện có trước khi chèn bản ghi cho từng người dùng vào cùng một bảng?

  5. Nhanh hơn để ngẫu nhiên nhiều kết quả trên MySQL Server hoặc trong PHP