sql >> Database >  >> RDS >> Mysql

Kan de herhalende waarden in iReport niet uitfilteren

Als je naar je schermafbeeldingen kijkt, lijkt het erop dat het dupliceert op basis van het aantal tags op elke locatie. Dit zou van de join on tags zijn om de locaties te kunnen filteren. Door een distinct aan uw query toe te voegen, worden de dubbele databasewaarden verwijderd. Nadat u dat heeft gedaan, wilt u waarschijnlijk de dubbele waarden weergeven weer inschakelen, omdat deze dan niet worden weergegeven als u dezelfde hoeveelheid en dezelfde waarde koopt voor een bepaald onderdeel.

SELECT DISTINCT costlayer.qty AS Qty, costlayer.orgqty, costlayer.orgtotalcost,
costlayer.totalcost AS TotalCost, costlayer.datecreated AS DateCreated,
part.num AS PartNumber, part.description as PartDescription, asaccount.name as "InventoryAccount",
company.name AS company, currency.symbol

FROM CostLayer
LEFT JOIN Part ON part.id = costlayer.partid
LEFT JOIN Tag ON part.id = tag.partId
LEFT JOIN Location ON tag.locationId = location.id
LEFT JOIN LocationGroup ON location.locationGroupId = locationGroup.id
LEFT JOIN asaccount ON part.inventoryaccountid = asaccount.id
JOIN company ON company.id = 1
LEFT JOIN currency ON currency.homeCurrency = 1

WHERE costlayer.datecreated BETWEEN $P{dateRange1} AND $P{dateRange2}
AND costlayer.statusid IN ($P!{ckShowActiveCostingLayers},$P!{ckShowFulfilledCostingLayers},$P!{ckShowVoidedCostingLayers})
AND UPPER(part.num) LIKE UPPER($P{partNum})
AND (UPPER(COALESCE(asaccount.name,'')) LIKE UPPER('%' || $P{AssetAccount} || '%'))
AND LocationGroup.id LIKE $P{locationGroupID}

ORDER BY (CASE WHEN $P{AssetAccount} NOT LIKE CAST('%' AS varchar(256)) THEN asaccount.name ELSE part.num END), part.num ASC, costlayer.id, costlayer.datecreated



  1. Verouderde MySql-functies

  2. Hoe de uitvoer van de SELECT-query in de opdrachtprompt mooier maken?

  3. Tabelwijziging in Oracle volgen

  4. Volledig proces om SQL Server-database te herstellen vanaf opdrachtprompt