【问题标题】:DataSet TableAdapter throwing OVER SQL construct or statement not supported不支持 DataSet TableAdapter 抛出 OVER SQL 构造或语句
【发布时间】:2018-02-01 18:43:29
【问题描述】:

我有一个用this sample help 编写的 t-sql 查询。

SELECT  t.gName AS 'Product'
, isnull(SUM(CASE WHEN t.Col = 1 THEN t.Quantity END),0) AS '180ml'
, isnull(SUM(CASE WHEN t.Col = 2 THEN t.Quantity END),0) AS '375ml'
, isnull(SUM(CASE WHEN t.Col = 3 THEN t.Quantity END),0) AS '500ml'
, isnull(SUM(CASE WHEN t.Col = 4 THEN t.Quantity END),0) AS '1000ml'
, isnull(SUM(CASE WHEN t.Col = 5 THEN t.Quantity END),0) AS '2000ml'
FROM (
SELECT p.pName
     , p.pCode
     , p.pGroup
     , p.pSize, i.gName, i.gCode
     , sl.Quantity, sl.BillDate
     , DENSE_RANK() OVER(PARTITION BY p.pGroup ORDER BY p.pSize) AS Col 
    FROM 
        ItemGroup AS i INNER JOIN 
                          Products AS p ON i.gCode = p.pGroup INNER JOIN 
                          SalesLog AS sl ON p.pGroup = sl.pGroup
       AND p.pCode = sl.ProductCode   
       ) AS t where t.BillDate=@BillDate and t.pGroup!=15 and t.pGroup!=16
     GROUP BY t.gName
    order by t.gName

它可以在 Management Studio 查询编辑器中工作,但不能在 DataSet 中抛出错误,例如 不支持 OVER SQL 构造或语句。

这是报告 (.rdlc) 所需的查询。请帮忙

谢谢

【问题讨论】:

    标签: visual-studio-2008 tsql


    【解决方案1】:

    我会将此 SQL 放入存储过程或视图中。然后,您可以从那里填充您的数据集。

    【讨论】:

    • 好答案! 7 年后,仍然帮助我。我想知道为什么 over 函数会导致 TableAdapter 出现问题。 SQL不应该在SQL Server上执行吗?查询本身如何影响适配器?当适配器从数据库中获取结果时,我认为它会开始工作。但是抛出这个异常说明了一个不同的故事。
    【解决方案2】:

    适配器无法为脚本创建图表。右键单击,转到窗格,取消选择图表......就是这样!它运行:)

    【讨论】:

    • 右键在哪里?什么窗格?
    猜你喜欢
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 2019-11-10
    • 1970-01-01
    • 2011-07-26
    相关资源
    最近更新 更多