In RFID systems, middleware is used to filter a large amount of streaming data gathered continuously from readers to process application requests. The high volume of data makes the middleware often in a highly overloaded situation. The reader filtering capability can be used to reduce data volume and middleware work-load. However, if the middleware dispatches query conditions to readers without any adjustment, it may generate a huge amount of duplicate data and imposes considerable load on the middleware. As such, an appropriate schema for data volume reduction is required. In this paper, we propose a query decomposition technique to divide queries into sub-queries for middleware and reader level execution. This new approach of query execution resolves the problem of duplicate data generation. Our experiments show that the proposed approach considerably improves the performance of middleware by reducing query processing time and network traffic between reader and middleware.