MDX在SSRS报告查询中保留

时间:2016-06-09 07:03:07

标签: reporting-services sql-server-2012 mdx olap

我想使用LEFT()从SSRS中的报告中过滤一些产品代码,我遇到了问题。

这是我的疑问:

<?php
    if (isset($companyusers) && $companyusers != array()) {
        foreach ($companyusers as $key => $value) {
            ?>
            <div class="div_to_hide">
                <label class="checkbox" style="display: inline-block !important">
                    <input name="noti[<?php echo $value->id; ?>]" id="" type="checkbox" class="checkbox_input" value="<?= $value->first_name ?>">
                      <span class="search_text">
                          <?= $value->first_name ?>
                      </span>
                </label>
            </div>
            <?php
        }
    }
?>
<div class="form-group">
    <div class="col-lg-offset-2 col-lg-10">
        <button type="submit" class="btn smbtn btn-success">
            <?php echo Yii::t('app', 'Send'); ?>
        </button>
    </div>
</div>

问题是,我无法使其正常工作,因为我在产品代码的LEFT上遇到了一些语法错误。休息完美。 你能救我吗?

1 个答案:

答案 0 :(得分:2)

请走出SQL世界,这是MDX。

LEFT([Product].[Product code],3)毫无意义。你需要的可能是LEFT([Product].[Product code].&[foo].membername, 3)。但是你必须迭代产品代码才能过滤那些符合标准的产品代码。

因此,不是LEFT([Product].[Product code],3) <> 'ALE',而是语法正确。

FILTER([Product].[Product code].MEMBERS AS prd,
       LEFT(prd.currentmember.name,3) <> 'ALE'
      )

您可以在追踪AND子句中容纳其他条件。

......FROM(SELECT 
           FILTER([Product].[Product code].MEMBERS AS prd,
           LEFT(prd.currentmember.name,3) <> 'ALE' AND
           LEFT(prd.currentmember.name,3) <> 'DBN' AND
           LEFT(prd.currentmember.name,3) <> 'DBR'
          ) ON 0 FROM [Sales]

当然,有更多更好的方法来处理这种要求,但这只是为了让家庭如何在这种情况下正确地进行过滤。