该函数需要 1 个参数的元组集表达式。使用了字符串或数字表达式

The function expects a tuple set expression for the 1 argument. A string or numeric expression was used

SELECT 
  {
    Measures.[Deviation]
   ,[Measures].[Product ID]
  } ON COLUMNS
 ,Filter
  (
    CrossJoin
    (
      {[Dim Customer].[Customer Name].[Customer Name].MEMBERS}
     ,{[Dim Customer].[Gender].[Gender].MEMBERS}
     ,{[Dim Customer].[Customer ID].[Customer ID].MEMBERS}
    )
   ,
      [Measures].[Product ID] > 1 AND [Measures].[Deviation] > 5
    AND 
      [Measures].[Quantity] > 1
  ) ON ROWS
FROM 
(
  SELECT 
    [Dim Customer].[Customer ID].&[1] : [Dim Customer].[Customer ID].&[5] ON COLUMNS
  FROM 
  (
    SELECT 
      {
          Instr
          (
            [Dim Customer].[Customer Name].CurrentMember.Properties('Member_Caption')
           ,'H'
          )
        = 1
      } ON COLUMNS
    FROM [OLAP Cubes]
  )
);

当我 运行 以上查询时,我得到错误:

The function expects a tuple set expression for the 1 argument. A string or numeric expression was used.

如何解决这个错误?

这一段是问题....

...
SELECT 
      {
          Instr
          (
            [Dim Customer].[Customer Name].CurrentMember.Properties('Member_Caption')
           ,'H'
          )
        = 1
      } ON COLUMNS
...

您只能在 COLUMNS 或 ROWS 上使用可识别的数据类型...我指的是一个成员、一组成员或一组元组。

你真的想做 FILTER 吗?

...
SELECT 
     Filter(
          [Dim Customer].[Customer Name].[Customer Name].MEMBERS,
          Instr
          (
            [Dim Customer].[Customer Name].CurrentMember.Properties('Member_Caption')
           ,'H'
          )
        = 1
     ) ON COLUMNS
...