2010-06-29 47 views
2

我有一个用this sample help写的t-sql查询。DataSet TableAdapter抛出OVER 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 [email protected] and t.pGroup!=15 and t.pGroup!=16 
    GROUP BY t.gName 
    order by t.gName 

它Management Studio中查询编辑工作,但不是在DataSet中抛出错误,如过SQL构造或语句不支持。

这是Report(.rdlc)所需的查询。请帮助

谢谢

回答

4

我会把这个SQL中的存储过程或视图。然后你可以从那里填充你的DataSet。

+0

嘿谢谢,工作完美,使用功能....... 非常感谢! – 2010-06-29 08:03:02

+0

很好的答案! 7年后,仍然帮助我。我想知道为什么over函数会导致TableAdapter出现问题。 SQL不应该在SQL Server上执行? querry本身如何影响适配器?当它从数据库获得结果时,我认为适配器会开始工作。但抛出这个异常说明了另一个故事。 – Luke 2017-07-12 12:31:31

0

ADAPTER不能为脚本创建图表。右键单击,转到Panes,取消Diagram ...就是这样!它运行:)