CREATE OR REPLACE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `vn`.`lastTopClaims` AS SELECT `s`.`itemFk` AS `itemFk`, `i`.`longName` AS `itemName`, `it`.`name` AS `itemTypeName`, COUNT(0) AS `claimsNumber`, round( sum( `cb`.`quantity` * `s`.`price` * (1 - (`c`.`responsibility` - 1) / 4) * (100 - `s`.`discount`) / 100 ), 2 ) AS `claimedAmount`, round( sum( `cb`.`quantity` * `s`.`price` * (100 - `s`.`discount`) / 100 ), 2 ) AS `totalAmount` FROM ( ( ( ( `vn`.`claim` `c` JOIN `vn`.`claimBeginning` `cb` ON(`cb`.`claimFk` = `c`.`id`) ) JOIN `vn`.`sale` `s` ON(`s`.`id` = `cb`.`saleFk`) ) JOIN `vn`.`item` `i` ON(`i`.`id` = `s`.`itemFk`) ) JOIN `vn`.`itemType` `it` ON(`it`.`id` = `i`.`typeFk`) ) WHERE `c`.`created` >= `util`.`VN_CURDATE`() + INTERVAL -1 week GROUP BY `s`.`itemFk` HAVING `claimedAmount` > 100 AND `claimsNumber` > 2 OR `claimsNumber` > 4 ORDER BY COUNT(0) DESC