楼主,对于你的要求只要以下3句语句就可以完成:
SELECT 单位,品种,MAX(扎帐) AS 扎帐 FROM 表1 GROUP BY 单位,品种 INTO CURSOR tmp1
SELECT 单位,品种,SUM(销售) AS 销售 FROM 表1 GROUP BY 单位,品种 INTO CURSOR tmp2
SELECT b.*,a.库存,c.销售 FROM 表1 a INNER JOIN tmp1 b ON a.单位=b.单位 AND a.品种=b.品种 AND a.扎帐=b.扎帐 INNER JOIN tmp2 c ON a.单位=c.单位 AND a.品种=c.品种
INTO CURSOR tmp3
以上3句语句可以保证数据准确,对于SQL语句VFP9.0的语法是最严谨的,千万不要使用兼用版本的语句,因为有可能出现错误结果。
如果你是用VFP9.0那么以下一句语句就行:
SELECT b.*,a.库存,c.销售 ;
FROM 表1 a ;
INNER JOIN (SELECT 单位,品种,MAX(扎帐) AS 扎帐 FROM 表1 a GROUP BY 单位,品种) b ON a.单位=b.单位 AND a.品种=b.品种 AND a.扎帐=b.扎帐 ;
INNER JOIN (SELECT 单位,品种,SUM(销售) AS 销售 FROM 表1 GROUP BY 单位,品种) c ON a.单位=c.单位 AND a.品种=c.品种 ;
INTO CURSOR tmptmp
VFP9.0以前的版本,可以使用一些非标SQL的语句,但是VFP9.0版本使用的是标准的SQL语句,避免了非标语句的不严谨问题。所以,如果你用的是VFP9.0,建议你使用标准的SQL语句,这种标准语句在SQL SERVER也是通用的(即VFP9.0中能用,SQL SERVER中也能用)。
[此贴子已经被作者于2019-5-11 17:20编辑过]