SQL Server:列前缀与表名不匹配

时间:2016-08-06 12:43:50

标签: sql sql-server

这是我的查询。我一直得到同样的错误

  

列前缀“A”与查询中使用的表名或别名不匹配。

虽然查询似乎对我来说

<table class="table table-striped">
              <tr>
                  <th>Available Models</th>
              </tr>
              <script>
                <% var index = 0; %>
              </script>
              <% if(modelId) { %>
              <script>
                for(i =0; i <= document.getElementById("mnumake").options.length;i++) {
                  var optionValue = document.getElementById("mnumake").options[i].value;
                  if (<% modelId.equals(%> optionValue <% ) %> ) {
                  index = i;
                  document.getElementById("mnumake").options[i].selected = true;
                  break
                  }
                } 
              </script>
              <%  }  %>
              <% makes[index].models.forEach(function(model){ %>
                  <tr><td><%= model.name %></td></tr>
              <% }) %>
        </table>

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

子轴位于子查询上,称为source_table,所以问题出在这一行:

PIVOT  (max(A.[financial_structure_value]) for A.period in (['+@date2+'] , ['+@date1+']) ) AS PivotTable;

你可以使用:

PIVOT  (max([financial_structure_value]) for period in (['+@date2+'] , ['+@date1+']) ) AS PivotTable;

注意:当动态SQL出现错误时,如果在变量替换后打印出SQL,您将能够在95%的时间内轻松发现错误。