select * from (select * from 表名) 这样的语法中括号里的查询语句是什么意思.为什么不直接from表名
select * from (select * from 表名) 这样的语法中括号里的查询语句是什么意思.为什么不直接from表名
select M.* ,
case when M.num>1 then M3.Edescs else M3.Edesc end fqtyut,
M3.Edesc fpriceut,M4.tradec fcountry
from (
SELECT INVNO,HSCODE,fedesc,NUM,UT,AMT,FNW,FGW,
FMEAS,QUA,PRICE,DESCNUM,LINE,CDESC,BGPRICE,BGAMT,
HSUT,CMTPRICE,CMTAMT,ItemNo,ITEMNOA,Caseno,typea,type2,fbuyamt,type3,etype,etype2,etype3,etype4,sp,fspname,fbuycurcy,
price1,pono FROM LIST1
) M
left join itemut M3 on M.ut=M3.ut
left join (select invno,tradec from list) M4 on M.invno=M4.invno
where M.invno='12AC0003'
ORDER BY M.INVNO,M.DESCNUM,M.LINE
以上是原数据操作查询语句,这个地方为什么可以进行分组,分组一般不是需要包含在聚合函数中或者是在分组的时候将所有查询出来的字段都添加在里面才不报错的吗?
括号内的结果集对于外面叫做派生表
这种查询一般是要对括号内的查询结果集再进行筛选及操作
你的这个写的简单,看似无用,一般里面写的都很复杂,多表联合、分组等等
--------------------------
哪里有分组,order by是排序,case when 是选择语句,可以根据选择条件筛选取值