我确定这是简单的 SQL,但我有一个表,其中包含每个 X(当前为 3)级别的多条记录。我基本上想将其复制到 csv 文件中,每个级别一个。
我有选择的 SQL,我可以把它复制出来。我还可以进行选择以获取文件中唯一级别的列表。我不能工作的是如何让 foxpro 循环遍历唯一级别并提供文件名并仅保存相关记录。
我正在使用扫描来遍历唯一记录,但显然我正在做的事情是错误的。
* identify the different LPG report levels
SELECT STREXTRACT(ALLTRIM(group),"|","|",3) as LPG_level FROM &lcFile GROUP BY LPG_level INTO CURSOR levels
TEXT to lcSql1 noshow textmerge pretext 15
SELECT
LEFT(ALLTRIM(group),ATC("|",ALLTRIM(group))-1) as Sim,
STREXTRACT(ALLTRIM(group),"|","|",1) as Company,
ENDTEXT
TEXT to lcSql2 noshow textmerge pretext 15
time,
SUM(as) as Asset_Share_Stressed,
SUM(as_us) as Asset_Share_Unstressed
FROM <<lcFile>>
GROUP BY Sim,
Company,
Fund,
LPG_level,
Output_group,
time
ORDER BY sim asc,
output_group asc
INTO CURSOR bob
ENDTEXT
TEXT to lcSqlgroup2 noshow textmerge pretext 15
RIGHT(ALLTRIM(group),LEN(ALLTRIM(group)) - ATC("|",ALLTRIM(group),4)) as Output_group,
ENDTEXT
TEXT to lcSql_fund2 noshow textmerge pretext 15
STREXTRACT(ALLTRIM(group),"|","|",2) as Fund,
ENDTEXT
TEXT to lcSql_level noshow textmerge pretext 15
STREXTRACT(ALLTRIM(group),"|","|",3) as LPG_level,
ENDTEXT
&lcSql1 + &lcSql_fund2 + &lcSql_level + &lcSqlgroup2 + &lcSql2
SELECT levels
SCAN
COPY TO output_path + lcFilename + levels.LPG_level for bob.LPG_Level = levels.LPG_Level
endscan