sql >> Databáze >  >> RDS >> Mysql

Nastavte opakující se hodnotu na 0, přičemž první hodnotu ponechte samotnou

Přidejte do svého SQL SOITEM."SOID" (zkontrolujeme, zda je to duplicitní), dostanete pole

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

Vytvořte skupinu na SOID

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

Poté vytvořte proměnnou že reset je se skupinou počítající výskyt SOID

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

Sekvence v jrxml tohoto kódu bude

<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>

Tuto proměnnou lze nyní použít k vyhodnocení, zda jste duplikovali SOID, bude to >1 při duplikaci SOID

Příklad z textField které zobrazují 0, pokud jsou duplikovány SOID

<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>

V den, kdy chcete svůj přehled vylepšit, stačí přidat groupHeader kapela ve vaší skupině a poté vložte textPole do této skupiny




  1. Rozdělte hodnoty oddělené čárkami do sloupců v Oracle

  2. Duplikování záznamů k vyplnění mezery mezi daty

  3. Použití Oracle JDeveloper 12c s Oracle Database 12c na platformě Oracle Cloud, část 3

  4. PHP - Filtrování podle hodnoty pole MySQL