T1 1对多 T10
然后需要根据T1的ID 取出在T10表里最早创建的那条
另外 T1还需要去join很多个别的子查询
语句如下 不知道应该如何改
SELECT
T10.new_ecc_si,
T10.new_ecc_competitor_idName
FROM Opportunity T1
LEFT JOIN
(
SELECT
b1.new_ecc_opportunity_id,
b1.CreatedOn,
b1.new_ecc_si,--中标SI
b1.new_ecc_competitor_idName--中标品牌
FROM
Opportunity a1--商机
LEFT JOIN new_ecc_competition b1--竞争对手
ON a1.OpportunityId=b1.new_ecc_opportunity_id
group by b1.new_ecc_opportunity_id,b1.new_ecc_si,b1.new_ecc_competitor_idName,b1.CreatedOn
) as T10
ON T10.new_ecc_opportunity_id = T1.OpportunityId
我在子查询里的group by后面写 order by b1.CreatedOn desc 按创建时间倒序排列
出现错误
除非另外还指定了 TOP、OFFSET 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
group by 后面写order by 没错啊,你单独执行你的子查询看看 是不是子查询本身就不对
如果子查询能成功 再排查其他原因
只要在子查询里写order by 就出现这个
除非另外还指定了 TOP、OFFSET 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
出现什么?是图片还是什么,看不到
看你好像是要查T10中的最早数据
select T10的字段 from T10 where T10.new_ecc_opportunity_id = (select OpportunityId FROM T1) order by time limit 1
就可以了吧
出现上面那句报错啊。。。
我希望T10的数据在子查询里已经排好倒序取出第一条 再出来和T1链接
最终我的报表排序不按T10的这个字段排序 按其他很多个不同字段排序
你order by的是什么字段,group by和order 不要连用时,order by子句中的列必须包含在聚合函数或 group by 子句中
本回答被提问者采纳