gpt4 book ai didi

mysql - 将 Foxpro 代码转换为基于集合的 MySQL 查询

转载 作者:行者123 更新时间:2023-11-30 22:30:01 25 4
gpt4 key购买 nike

尝试将 Visual Foxpro 代码转换为基于集合的 MySQL 查询。以下是来自 Foxpro 的代码段

lnFound=0
IF LnFound = 0 .and. rcResult = "ALL" AND PcOpOrIp = "OP"
SELECT PFile
LcTag = ORDER()
SET ORDER TO TAG PtcntlNm
=SEEK(LcPatientNo)
SCAN WHILE PtcntlNm = LcPatientNo
IF GcMResult <= "0"
GcMResult = "1-7MAT-PTC"
ENDIF
IF MONTH(cSRa.Fromdate) = MONTH(pFile.Fromdate) ;
.AND. pFile.ThruDate >= cSRa.ThruDate
** Check From/Thru Date against pFile
IF (ABS(cSRa.totalchrg) = (pFile.BDeduct+pFile.Deduct+pFile.Coinsur)) .OR. cSRa.Tchrgs = (pFile.BDeduct+pFile.Deduct+pFile.Coinsur) .or. (ABS(cSRa.totalchrg) = pFile.Total .OR. cSRa.Tchrgs = pFile.Total)
IF lnFound = 0
gcRecid = recid
gcmResult=rcResult
ENDIF
lnFound = lnFound + 1
gcUNrECID = gcunRecid + IIF(EMPTY(gCUNreCID),Recid,[,]+recid)
ENDIF
ENDIF
ENDSCAN
SELECT PFile
SET ORDER TO &LcTag
ENDIF

我有一个名为 pfile 的表,我正试图将其与另一个名为 csra 的表连接起来。这样做的主要目的是根据三个嵌套的if语句的条件来设置record_id(gcrecid)。设置 gcrecid 变量后,lnfound 变量设置为 1,因此从第二次迭代开始第三个 if 语句条件为假。

这是我提出的 MySQL 存储过程,如您所见,我无法以有效的方式完全转换代码。

UPDATE csra AS cs 
JOIN p051331s AS p ON cs.patientno = p.ptcntlnm
SET cs.recid = p.recid
, cs.mcsult = "ALL"
, cs.lnfound = '"1"'
WHERE cs.provider = '051331'
AND cs.lnfound = "0"
AND cs.RECID IS NULL
AND month(cs.fromdate) = month(p.fromdate)
AND p.thrudate >= cs.ThruDate
AND ABS(cs.totalchrg) = (p.bdeduct+p.deduct+p.coinsur)
OR cs.tchrgs = (p.bdeduct+p.deduct+p.coinsur)
OR ABS(cs.totalchrg) = p.total OR cs.tchrgs = p.total;

在这方面的任何领导将不胜感激,因为我已经为此程序工作了几天,但没有明显的结果。

最佳答案

根据这个部分 VFP 代码(它使用的变量并不清楚)根本没有代码可以转换为基于集合的代码。相应的 mySQL 或 MS SQL 或任何其他 SQL 系列后端代码将只是“无”。即:这将是等效的:

-- Hello to mySQL or MS SQL

PS:在您尝试转换为更新代码时,使用 csra 进行内部连接是错误的。它没有加入 VFP 代码,csra 值是常量——除非字段集有关系——(仅指向 csra 中的“当前行”值)。您可能希望将它们与其余内存变量一样作为参数(从代码中不清楚哪些是内存变量)。

关于mysql - 将 Foxpro 代码转换为基于集合的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34127645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com