Ошибки набора данных Reportbuilder с хорошим SQL? - PullRequest
0 голосов
/ 02 октября 2019

У меня есть статус bigint, в котором установлен побитовый флаг, и я пытаюсь создать отчет, чтобы использовать эту информацию, мой код выглядит так:

cast(foo.State & 0x0 as bit)&1 as Case1,
cast(foo.State & 0x1 as bit)&1 as Case2,
cast(foo.State & 0x2 as bit)&1 as Case3,
cast(foo.State & 0x4 as bit)&1 as Case4,
cast(foo.State & 0x8 as bit)&1 as Case5,

Но когда я пытаюсь объединить 2 битав уникальное состояние это не удается,

Я пытался:

(cast(foo.State & 0x4 as bit) and cast(foo.State & 0x8 as bit)) as CaseBar

, а также

Case foo.State & 0xc when 12 then 1 else 0 end as CaseBar

оба они работают нормально, когда в запросе SQL, но не удаетсяв свойствах набора данных построителя отчетов, есть ли какие-либо отзывы или указатели здесь?

1 Ответ

0 голосов
/ 14 октября 2019

способ сделать это был:

cast((cast(foo.State & 0x8 as bit) & Cast(foo.State & 0x4 as bit)) as bit)&1 as CaseBar,

проблема заключалась в том, что механизм построения отчетов не поддерживал полный набор команд TSQL

...