/**
  * @param int $type
  * @return string
  */
 protected static function resolveCampaignTypeSubQuery($type)
 {
     assert('is_int($type)');
     $quote = DatabaseCompatibilityUtil::getQuote();
     $where = null;
     $campaignItemTableName = CampaignItem::getTableName();
     $campaignItemActivityTableName = CampaignItemActivity::getTableName();
     $emailMessageActivityTableName = EmailMessageActivity::getTableName();
     $selectQueryAdapter = new RedBeanModelSelectQueryAdapter();
     $joinTablesAdapter = new RedBeanModelJoinTablesQueryAdapter('CampaignItemActivity');
     $selectQueryAdapter->addClauseByQueryString("1");
     $joinTablesAdapter->addFromTableAndGetAliasName($emailMessageActivityTableName, 'emailmessageactivity_id', $campaignItemActivityTableName);
     $where = "type = " . $type . " and {$quote}{$campaignItemActivityTableName}{$quote}" . ".campaignitem_id = {$quote}{$campaignItemTableName}{$quote}.id";
     $sql = SQLQueryUtil::makeQuery($campaignItemActivityTableName, $selectQueryAdapter, $joinTablesAdapter, null, 1, $where);
     return $sql;
 }