dw_1.find()求符合條件的數據記錄,高手幫忙看下
取值條件:
工號= MZGHYYDJ.DJRY
姓名= MZGHYYDJ.DJRYXM
總預約數量=MZGHYYDJ 的記錄數
有效預約數量=MZGHYYDJ.ZFRY IS NULL 的記錄數
已取號數量= 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
------解決方案--------------------------------------------------------太混亂了.
------解決方案--------------------------------------------------------沒看明白
------解決方案--------------------------------------------------------每個人的解題思路都不太一樣,理解別人思路有時候比自己寫還難
本身你交待的問題不夠明確,要想實現的目的也沒有明確,一般是不愿意也沒時間去仔細分析的
最好你把要求、目的和遇到的問題寫清楚,這樣別人也容易幫忙
有時候你在標明語句的用途時,
tb自己就能找出問題的所在
------解決方案--------------------------------------------------------dw_1.object.zyy[ll_row] = dw_1.object.zyy[ll_row] + 1
這種寫法,在多人并行運行的時候會出現問題的
------解決方案--------------------------------------------------------自己的業務邏輯思路沒想好。
------解決方案--------------------------------------------------------工號= MZGHYYDJ.DJRY
姓名= MZGHYYDJ.DJRYXM
總預約數量=MZGHYYDJ 的記錄數
有效預約數量=MZGHYYDJ.ZFRY IS NULL 的記錄數
已取號數量= MZGHYYDJ.ZFRY IS NULL AND MZGHYYDJ.MZH IS NOT NUL
樓主 到底想干嘛。。。看的糊里糊涂啊。。。
如果只是需要查詢 上面 這些 數據。。那從 sql 里面直接查詢不就是了??算法你基本已明確了。。。
干嘛 在 那里 繞圈。。。又是游標 又是 dw的。。。。
如果你想實現 查詢每個員工的 工號,姓名,總預約數量,有效預約數量,已取號數量 就使用子查詢。。在 sql里面。。。
select a.工號,a.姓名,a.總預約數量,b.有效預約數量,c.已取號數量
from
(select MZGHYYDJ.DJRY 工號,MZGHYYDJ.DJRYXM 姓名,count(*) 總預約數量
from MZGHYYDJ
group by DJRY,DJRYXM) a
left join
(select MZGHYYDJ.DJRY 工號,MZGHYYDJ.DJRYXM 姓名,count(*) 有效預約數量
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 工號,MZGHYYDJ.DJRYXM 姓名,count(*) 已取號數量
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
------解決方案--------------------------------------------------------確實沒看明白。。加點注釋吧。。