首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Foxpro VS SQL Logic

Foxpro VS SQL Logic
EN

Stack Overflow用户
提问于 2019-01-03 01:56:13
回答 2查看 210关注 0票数 1

我想不出更好的标题了。如果你有任何建议,请随时编辑我的帖子的标题。

我有一个foxpro查询,如下所示:

代码语言:javascript
运行
复制
Sele
 a.plan_enddt as enddt, a.plrevno, a.keyfld, "PLAN    " as source ;
    from a_plan a inner join c_temp1a_pre b ;
    on a.keyfld=b.keyfld and a.plrevno=b.plrevno ;
    into cursor c_temp1a ;
    group by a.keyfld ;
    where a.plan_enddt>=date1 ;

我要做的就是把foxpro翻译成T-SQL。

这条foxpro语句不会因为group by中只列出一列而失败吗?

编辑:

我不是在寻找解决方案来修复我的foxpro语句。

在TSQL中,如果select语句中有多个列,即使没有使用聚合函数,也不能只按1列分组。

在Foxpro中也是这样吗?

EN

回答 2

Stack Overflow用户

发布于 2019-01-03 01:57:15

您可以使用:

代码语言:javascript
运行
复制
Select MIN(a.plan_enddt) as enddt, MIN(a.plrevno), a.keyfld, 'PLAN    ' as [source]
from a_plan a 
inner join c_temp1a_pre b
  on a.keyfld=b.keyfld 
 and a.plrevno=b.plrevno 
where a.plan_enddt>=date1
group by a.keyfld ;

“我不是在寻找解决方案来修复我的foxpro语句”

这与MySQL和PostgreSQL之间的情况相同:Group by clause in mySQL and postgreSQL, why the error in postgreSQL?

如果这些非聚合在功能上依赖于GROUP BY columns T301,则

SQL99及更高版本允许每个可选要素使用此类非聚合

T-SQL 2.1.2.221 T301, Functional dependencies

票数 0
EN

Stack Overflow用户

发布于 2019-01-21 14:53:45

在Foxpro (Visual Foxpro 8和更早版本)中接受这样无效的group by子句看起来像是错误。select中列出的所有非聚合值的字段也应该是group by字段的一部分。

如下所示:

select min(a.plan_enddt) as enddt, min(a.plrevno) as plrevno, a.keyfld, "PLAN " as source from a_plan a inner join c_temp1a_pre b on a.keyfld=b.keyfld and a.plrevno=b.plrevno into cursor c_temp1a group by a.keyfld where a.plan_enddt>=date1 ;

或者这样:

select a.plan_enddt as enddt, a.plrevno, a.keyfld, "PLAN " as source from a_plan a inner join c_temp1a_pre b on a.keyfld=b.keyfld and a.plrevno=b.plrevno into cursor c_temp1a group by a.keyfld, a.plan_enddt, a.plrevno where a.plan_enddt>=date1 ;

但在这种情况下,您可以获得多个记录,有几个字段分组。

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

https://stackoverflow.com/questions/54010981

复制
相关文章

相似问题

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