MongoDB BI Connector: как присвоить значение переменной в операторе выбора
Мне нужно создать виртуальную таблицу и заполнить ее диапазоном значений дат.
Следующий запрос обычно выполняется в MySql:
SELECT DATEID, STR_TO_DATE(DateValue, '%Y-%m-%d %H:%i:%s') AS DateValue FROM(
SELECT CONVERT(DATE_FORMAT(ADDDATE(@day, INTERVAL @row1+1 DAY),'%Y%m%d'), UNSIGNED) AS DATEID,
@day := ADDDATE(@day, INTERVAL @row1+1 DAY) AS DateValue,
@row2 := @row2 + 1 AS row2
FROM `INFORMATION_SCHEMA`.COLUMNS a,
(SELECT @row1 := 0) r,
(SELECT @row2 := 0) r2,
(SELECT @day := DATE_SUB('2000-01-01', INTERVAL 1 DAY)) d
WHERE @row2 <= DATEDIFF('2020-01-01', '2000-01-01') ) as Result
Результат: введите описание изображения здесь
Как я могу получить именно такой результат, используя MongoDB BI Connector?
Проблема в том, что синтаксис присваивания ':=' не работает.
mongosqld запущен на локальном хосте:3307
public IDataReader ExecuteReader()
{
try
{
var connection = new MySqlConnection("Server=localhost;Port=3307;Database=masterDb;");
var sqlQuery = @"SELECT DATEID, STR_TO_DATE(DateValue, '%Y-%m-%d %H:%i:%s') AS DateValue FROM(
SELECT CONVERT(DATE_FORMAT(ADDDATE(@day, INTERVAL @row1+1 DAY),'%Y%m%d'), UNSIGNED) AS DATEID,
@day := ADDDATE(@day, INTERVAL @row1+1 DAY) AS DateValue,
@row2 := @row2 + 1 AS row2
FROM `INFORMATION_SCHEMA`.COLUMNS a,
(SELECT @row1 := 0) r,
(SELECT @row2 := 0) r2,
(SELECT @day := DATE_SUB('2000-01-01', INTERVAL 1 DAY)) d
WHERE @row2 <= DATEDIFF('2020-01-01', '2000-01-01') ) as Result";
if (connection.State != ConnectionState.Open)
connection.Open();
var command = connection.CreateCommand();
command.CommandText = sqlQuery;
command.CommandType = CommandType.Text;
command.CommandTimeout = ConnectionConstants.DefaultCommandTimeout;
return command.ExecuteReader();
}
catch (Exception ex)
{
throw new ConnectorException(Sections.QueryExecution, ex.Message);
}
}
если входные значения как startDate = "2000-01-01" endDate = "2000-01-05"
выходная таблица должна быть такой: введите описание изображения здесь