通过ODBC连接到SQL Server的Access中的MS SQL查询

时间:2019-05-24 00:33:23

标签: sql-server tsql ms-access odbc

由于一些限制(我在这里不再赘述)。.我们的体系结构正在使用通过ODBC SQL Server驱动程序运行的Access中的查询。

以下查询产生2个错误:

SELECT Tbl2.columnid, 
       Tbl2.label, 
       Tbl2.group1, 
       Tbl2.group2, 
       Count(Tbl2.columnid) AS Total 
FROM   (SELECT scanned AS Group1, 
               false   AS Group2, 
               scanned AS Label, 
               scanned AS ColumnID 
        FROM   (SELECT *, 
                       ( quantity - productqty ) AS Variance 
                FROM   order_line 
                WHERE  processed = false) AS Tbl1 
        WHERE   wsid = 1 ) AS Tbl2 
WHERE  Tbl2.columnid = false 
GROUP  BY Tbl2.group1, 
          Tbl2.group2, 
          Tbl2.columnid, 
          Tbl2.label 
ORDER  BY Tbl2.group1 DESC, 
          Tbl2.group2 

Errors in Group and Order By clauses

错误1:每个GROUP BY表达式必须至少包含一个作为外部引用的列:(#164) 错误2:ORDER BY位置编号0超出“选择”列表(#108)中项目的数量范围。

请注意,“ scanned”是SQL Server中的BIT字段(因此,Group1,Label,ColumnId也是位)。我相信这就是GROUP BY和ORDER BY将其视为常量(值= 0)并导致这些错误的原因。

但是我不知道如何解决这些问题。任何建议都很棒!

PS-使用2个子查询的原因是由于其他限制,我们试图获取看板中某列的ID,标签,计数。

1 个答案:

答案 0 :(得分:0)

基于DRapp的评论和建议。以下工作:

    Widget makeBody(BuildContext context) => Container(
      height: MediaQuery.of(context).size.height / 1.5,
      child: ListView.builder(
        scrollDirection: Axis.vertical,
        shrinkWrap: true,
        itemCount: lessons.length,
        itemBuilder: (BuildContext context, int index) {
          return makeCard(lessons[index]);
        },
      ),
    );    

    return Scaffold(
      backgroundColor: Color.fromRGBO(58, 66, 86, 1.0),
      appBar: topAppBar,
      body: makeBody(context),
      bottomNavigationBar: makeBottom,
    );

不理想(因为第一个子查询是动态生成的,并且如果组字段是位,则现在需要额外的处理。但是可以使用!仍然对任何其他解决方案开放。