首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server Compact不允许在文本数据类型上使用subselect和inner with groupby

SQL Server Compact不允许在文本数据类型上使用subselect和inner with groupby
EN

Stack Overflow用户
提问于 2012-04-11 22:42:35
回答 1查看 746关注 0票数 0

我在数据库查询(SQL Server)中使用了以下sql语法

代码语言:javascript
复制
SELECT Nieuwsbrief.ID
    , Nieuwsbrief.Titel
    , Nieuwsbrief.Brief
    , Nieuwsbrief.NieuwsbriefTypeCode
    , (SELECT COUNT(*) AS Expr1 
        FROM NieuwsbriefCommentaar 
        WHERE (Nieuwsbrief.ID = NieuwsbriefCommentaar.NieuwsbriefID 
                AND NieuwsbriefCommentaar.Goedgekeurd = 1)) AS AantalCommentaren 
FROM Nieuwsbrief 

我现在改用sql-server-ce (精简版),它不允许我有这样的子查询。建议的解决方案:inner join。但由于我只需要子表'NieuwsbriefCommentaar‘的计数,所以我必须在我的基表属性上使用'group by’子句,以避免结果集中出现双精度。

但是,“Nieuwbrief.Brief”属性的数据类型为“text”。在sql-server-ce中,不允许对'text‘数据类型使用Group by子句。“Text”数据类型已弃用,但sql-server-ce尚不支持“nvarchar(max)”...

你知道怎么解决这个问题吗?感谢您的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-12 01:30:03

我认为解决方案可能会更简单。我不知道你的元数据到底是怎样的,但我认为只要使用LEFT JOIN,这段代码就能满足你的需求。

代码语言:javascript
复制
    SELECT Nieuwsbrief.ID 
    , Nieuwsbrief.Titel 
    , Nieuwsbrief.Brief 
    , Nieuwsbrief.NieuwsbriefTypeCode 
    , COUNT(NieuwsbriefCommentaar.NieuwsbriefID) AS AantalCommentaren
FROM Nieuwsbrief  
LEFT JOIN NieuwsbriefCommentaar  ON (Nieuwsbrief.ID = NieuwsbriefCommentaar.NieuwsbriefID)
WHERE NieuwsbriefCommentaar.Goedgekeurd = 1

编辑: 2ndOption

代码语言:javascript
复制
SELECT N.ID, N.Titel, N.Brief, N.NieuwsbriefTypeCode, G.AantalCommentaren  FROM Nieuwsbrief as N LEFT JOIN (SELECT NieuwsbriefID, COUNT(*) AS AantalCommentaren FROM NieuwsbriefCommentaar GROUP BY NieuwsbriefID) AS G ON (N.ID = G.NieuwsbriefID) 

请让我知道这个代码是否可以工作,以便找出另一个解决方法。

致以敬意,

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10108269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档