sql >> Databasteknik >  >> RDS >> Mysql

Det går inte att filtrera bort de upprepade värdena i iReport

När du tittar på dina skärmdumpar verkar det vara duplicerat baserat på antalet taggar på varje plats. Detta skulle vara från join on-taggarna för att kunna filtrera platserna. Genom att lägga till en distinkt i din fråga kommer den att rensa bort de dubbla databasvärdena. Efter att ha gjort det vill du antagligen återaktivera visa dubblettvärden eftersom det då inte kommer att visas om du gör samma kvantitet och värde av inköp för en viss del.

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. MySQL ODBC Problem:Datakällans namn hittades inte och ingen standarddrivrutin specificerad

  2. insert kommando nekad i mysql

  3. Variabel som innehåller antalet rader som påverkats av tidigare DELETE? (i en funktion)

  4. Skapa PHP-array från MySQL-kolumnen