dw_1.find()求符合條件的數(shù)據(jù)記錄,高手幫忙看下
取值條件:
工號(hào)= MZGHYYDJ.DJRY
姓名= MZGHYYDJ.DJRYXM
總預(yù)約數(shù)量=MZGHYYDJ 的記錄數(shù)
有效預(yù)約數(shù)量=MZGHYYDJ.ZFRY IS NULL 的記錄數(shù)
已取號(hào)數(shù)量= MZGHYYDJ.ZFRY IS NULL AND MZGHYYDJ.MZH IS NOT NUL
代碼:
For ll_i = 1 to ids_fdmcb.rowcount( )
ls_userbz = ids_fdmcb.object.userbz[ll_i] + '.'
ls_sql = " SELECT A.DJRY,A.DJRYXM,isnull(A.ZFRY,''), isnull(A.MZH,'')"
ls_sql += " FROM "+ls_userbz+"MZGHYYDJ A "
ls_sql += " GROUP BY A.DJRY ,A.DJRYXM"
DECLARE c1 DYNAMIC CURSOR FOR SQLSA;
PREPARE SQLSA FROM :ls_sql;
OPEN DYNAMIC c1 USING :lde_minno,:lde_maxno;
do while true
fetch c1 into :ls_djry,:ls_djryxm,:lde_zfry,:lde_mzh ;
if sqlca.sqlcode<>0 then
exit;
end if
ll_row = dw_1.find(" djry ='"+ls_djry+"' ",1, dw_1.rowcount( ) )
ll_row1 = dw_1.find(" djry ='"+ls_djry+"' AND zfry='' ",1, dw_1.rowcount( ) )
ll_row2 = dw_1.find(" djry ='"+ls_djry+"' AND zfry='' AND mzh<>'' ",1, dw_1.rowcount( ) )
If ll_row <= 0 then
ll_row = dw_1.insertrow(0)
dw_1.object.djry[ll_row] = ls_djry
dw_1.object.djryxm[ll_row] = ls_djryxm
End If
dw_1.object.zyy[ll_row] = dw_1.object.zyy[ll_row] + 1
dw_1.object.yxyy[ll_row1] = dw_1.object.yxyy[ll_row1] + 1
dw_1.object.yqh[ll_row2] = dw_1.object.yqh[ll_row2] + 1
loop;
close c1;
Next
------解決方案--------------------------------------------------------太混亂了.
------解決方案--------------------------------------------------------沒看明白
------解決方案--------------------------------------------------------每個(gè)人的解題思路都不太一樣,理解別人思路有時(shí)候比自己寫還難
本身你交待的問(wèn)題不夠明確,要想實(shí)現(xiàn)的目的也沒有明確,一般是不愿意也沒時(shí)間去仔細(xì)分析的
最好你把要求、目的和遇到的問(wèn)題寫清楚,這樣別人也容易幫忙
有時(shí)候你在標(biāo)明語(yǔ)句的用途時(shí),
tb自己就能找出問(wèn)題的所在
------解決方案--------------------------------------------------------dw_1.object.zyy[ll_row] = dw_1.object.zyy[ll_row] + 1
這種寫法,在多人并行運(yùn)行的時(shí)候會(huì)出現(xiàn)問(wèn)題的
------解決方案--------------------------------------------------------自己的業(yè)務(wù)邏輯思路沒想好。
------解決方案--------------------------------------------------------工號(hào)= MZGHYYDJ.DJRY
姓名= MZGHYYDJ.DJRYXM
總預(yù)約數(shù)量=MZGHYYDJ 的記錄數(shù)
有效預(yù)約數(shù)量=MZGHYYDJ.ZFRY IS NULL 的記錄數(shù)
已取號(hào)數(shù)量= MZGHYYDJ.ZFRY IS NULL AND MZGHYYDJ.MZH IS NOT NUL
樓主 到底想干嘛。。??吹暮锖堪?。。。
如果只是需要查詢 上面 這些 數(shù)據(jù)。。那從 sql 里面直接查詢不就是了??算法你基本已明確了。。。
干嘛 在 那里 繞圈。。。又是游標(biāo) 又是 dw的。。。。
如果你想實(shí)現(xiàn) 查詢每個(gè)員工的 工號(hào),姓名,總預(yù)約數(shù)量,有效預(yù)約數(shù)量,已取號(hào)數(shù)量 就使用子查詢。。在 sql里面。。。
select a.工號(hào),a.姓名,a.總預(yù)約數(shù)量,b.有效預(yù)約數(shù)量,c.已取號(hào)數(shù)量
from
(select MZGHYYDJ.DJRY 工號(hào),MZGHYYDJ.DJRYXM 姓名,count(*) 總預(yù)約數(shù)量
from MZGHYYDJ
group by DJRY,DJRYXM) a
left join
(select MZGHYYDJ.DJRY 工號(hào),MZGHYYDJ.DJRYXM 姓名,count(*) 有效預(yù)約數(shù)量
from MZGHYYDJ
and MZGHYYDJ.ZFRY IS NULL
group by DJRY,DJRYXM) b
on a.DJRY=b.DJRY and a.DJRYXM=b.DJRYXM
left join
(select MZGHYYDJ.DJRY 工號(hào),MZGHYYDJ.DJRYXM 姓名,count(*) 已取號(hào)數(shù)量
from MZGHYYDJ
and MZGHYYDJ.ZFRY IS NULL AND MZGHYYDJ.MZH IS NOT NUL
group by DJRY,DJRYXM) c
on a.DJRY=c.DJRY and a.DJRYXM=c.DJRYXM
------解決方案--------------------------------------------------------確實(shí)沒看明白。。加點(diǎn)注釋吧。。