public static function getJoinQuery($sids, $cols, $perPage, $pageNo) { global $db; $finalQuery = ""; $finalQueryJoinWherePart = ""; if (count($sids) == 1) { $sid = UtilsForWizard::getWordUntilFirstDot($sids[0]); $tableName = UtilsForWizard::stripWordUntilFirstDot($sids[0]); $sourceType = ExternalMSSQL::GetSourceType($sid); if ($sourceType == "data file") { return ExternalMSSQL::wrapInLimit($pageNo, $perPage, $tableName); } else { $colsString = "'" . implode("','", $cols) . "'"; $query = ExternalMSSQL::makeQueryToRotateTable($sid, $tableName, $colsString); $finalQuery = $query; return ExternalMSSQL::wrapInLimit($pageNo, $perPage, "(" . $finalQuery . ") as b"); } } else { for ($i = 0; $i < count($sids) - 1; $i++) { $sidFrom = UtilsForWizard::getWordUntilFirstDot($sids[$i]); $tableNameFrom = UtilsForWizard::stripWordUntilFirstDot($sids[$i]); $sourceTypeFrom = ExternalMSSQL::GetSourceType($sidFrom); if ($sourceTypeFrom == "data file") { $colsResult = ExternalMSSQL::getAllTableNameDotColumnsBySid($sidFrom, $tableNameFrom); $colsRenamed = $colsResult->colsRenamed; $finalQuery .= "(select {$colsRenamed} from {$tableNameFrom}) as rot{$i}, "; } else { $colsString = "'" . implode("','", $cols) . "'"; $query = ExternalMSSQL::makeQueryToRotateTable($sidFrom, $tableNameFrom, $colsString, $perPage, $pageNo); $finalQuery .= "({$query}) as rot{$i}, "; } $sidTo = UtilsForWizard::getWordUntilFirstDot($sids[$i + 1]); $tableNameTo = UtilsForWizard::stripWordUntilFirstDot($sids[$i + 1]); $sourceTypeTo = ExternalMSSQL::GetSourceType($sidTo); $finalQueryJoinWherePart .= ExternalMSSQL::getWhereJoinPart($i, $sidFrom, $tableNameFrom, $sidTo, $tableNameTo, $sourceTypeFrom, $sourceTypeTo); } $sidFrom = UtilsForWizard::getWordUntilFirstDot($sids[count($sids) - 1]); $tableNameFrom = UtilsForWizard::stripWordUntilFirstDot($sids[count($sids) - 1]); $sourceType = ExternalMSSQL::GetSourceType($sidFrom); if ($sourceType == "data file") { $colsResult = ExternalMSSQL::getAllTableNameDotColumnsBySid($sidFrom, $tableNameFrom); $colsRenamed = $colsResult->colsRenamed; $finalQuery .= "(select {$colsRenamed} from {$tableNameFrom}) as rot" . (count($sids) - 1); } else { $colsString = "'" . implode("','", $cols) . "'"; $query = ExternalMSSQL::makeQueryToRotateTable($sidFrom, $tableNameFrom, $colsString, $perPage, $pageNo); $finalQuery .= "({$query}) as rot" . (count($sids) - 1); } if ($finalQueryJoinWherePart != "") { $finalQueryJoinWherePart = substr($finalQueryJoinWherePart, 0, -4); } $finalQuery = "select * from {$finalQuery} where {$finalQueryJoinWherePart}"; return ExternalMSSQL::wrapInLimit($pageNo, $perPage, "(" . $finalQuery . ") as b"); } }