Заявление PetaPoco SQL Union не работает в .NETC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Заявление PetaPoco SQL Union не работает в .NET

Сообщение Anonymous »

Оператор SQL работает нормально в SSMS, но когда я применяю его в .NET Framework с помощью PetaPoco.SQL, он продолжает выдавать ошибку:

Все запросы, объединенные с помощью операторов UNION, INTERSECT или EXCEPT, должны иметь одинаковое количество выражений в целевых списках.

Проверено:
  • Типы данных каждого столбца являются правильными.
  • Количество столбцов в каждом операторе SELECT — 14.
  • Без UNION каждый оператор SELECT может запрашивать данные без ошибок.
Коды в .NET(Backend):
Sql sql = Sql.Builder;
sql.Select("GC.CategoryName AS Category, GP.ProviderName, GN.en AS GameName, GA.HasBuyFreeSpin, GA.HasFeatureGames," +
"GA.HasJackpot, GA.EXclusive, GA.MEgaways, GA.Volatility, GA.RTP, GA.MInBet, GA.MAxBet," +
"GP.Id AS GameProviderId, GC.Id AS GameCategoryId");
sql.From("afbGameAttribute GA WITH(NOLOCK)");
sql.InnerJoin("dbo.afbGameProvider GP WITH(NOLOCK) ON GA.GameProviderId = GP.Id");
sql.InnerJoin("dbo.afbGameCategory GC WITH(NOLOCK) ON GP.GameCategoryId = GC.Id");
sql.InnerJoin("Language.dbo.GameName GN WITH(NOLOCK) ON GA.GameName = GN.key2");
if (param.f != null)
{
if (param.f.CategoryId > 0) { sql.Where("GC.Id = @0", param.f.CategoryId); }
if (param.f.ProviderId > 0) { sql.Where("GP.Id = @0", param.f.ProviderId); }
if (param.f.GameName != null) { sql.Where("GN.en LIKE @0", "%" + param.f.GameName + "%"); }
}
sql.Append(" UNION ");
sql.Select("GC.CategoryName AS Category, GP.ProviderName, GN.en AS GameName, " +
"CAST(NULL AS TINYINT) AS HasBuyFreeSpin, CAST(NULL AS TINYINT) AS HasFeatureGames, CAST(NULL AS TINYINT) AS HasJackpot, CAST(NULL AS TINYINT) AS EXclusive, CAST(NULL AS TINYINT) AS MEgaways, CAST(NULL AS NVARCHAR(20)) AS Volatility, CAST(NULL AS DECIMAL) AS RTP, CAST(NULL AS DECIMAL(12,4)) AS MInBet, CAST(NULL AS DECIMAL(12,4)) AS MAxBet," +
"GP.Id AS GameProviderId, GC.Id AS GameCategoryId");
sql.From("afbGame G WITH(NOLOCK)");
sql.InnerJoin("dbo.afbGameProvider GP WITH(NOLOCK) ON G.GameProviderId = GP.Id");
sql.InnerJoin("dbo.afbGameCategory GC WITH(NOLOCK) ON G.GameCategoryId = GC.Id");
sql.InnerJoin("Language.dbo.GameName GN WITH(NOLOCK) ON G.GameName = GN.key2");
sql.Where("NOT EXISTS (SELECT 1 FROM afbGameAttribute GA WITH(NOLOCK) WHERE GA.GameName = G.GameName)");
if (param.f != null)
{
if (param.f.CategoryId > 0) { sql.Where("GC.Id = @0", param.f.CategoryId); }
if (param.f.ProviderId > 0) { sql.Where("GP.Id = @0", param.f.ProviderId); }
if (param.f.GameName != null) { sql.Where("GN.en LIKE @0", "%" + param.f.GameName + "%"); }
}
sql.OrderBy("GameName");

result.D = db.Page(param.p, param.n, sql);


Подробнее здесь: https://stackoverflow.com/questions/792 ... ing-in-net
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Заявление Python "Match" подчеркнуто Red в Pycharm 2020.3.5, но заявление "Match" работает
    Anonymous » » в форуме Python
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Как я могу использовать petapoco с шаблоном синхронного и асинхронного репозитория + единицей работы?
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Множественные объединения одного и того же типа в PetaPoco
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Petapoco выполняет сохраненную процедуру, не ожидая
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Функция «ДАТА» не найдена; SQL-заявление:
    Anonymous » » в форуме JAVA
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»