查询金额大于某值且小于某一值的记录(100分)

  • 主题发起人 主题发起人 ppppp
  • 开始时间 开始时间
P

ppppp

Unregistered / Unconfirmed
GUEST, unregistred user!
各位,请教d4下prodox中money型值 用QUERY如何查询符合某段值的记录如:
1000.89>MONEY>500.01
 
SELECT * FROM XXX
WHERE MONEY>5000.01 AND MONEY<1000.89
 
you can also use Filter='...'
 
select * from xxx
where (money>1000) and (money<5000)
 
请教将5000.01和1000.89设为变量该如何操作?
 
在SQL中写:
SELECT * FROM XXX
WHERE MONEY>:LMONEY AND MONEY<:HMONEY

在打开之前
QUERY1.PARAMBYNAME('LMONEY').ASCURRENCY:=1000.89;
QUERY1.PARAMBYNAME('HMONEY').ASCURRENCY:=5000.01;
QUERY1.CLOSE;
QUERY1.OPEN;
 
mech谢谢,程序是运行下去了,可是库里明明有数据,但查不出来,还有1000.01和5000.89
能否换成EDIT.TEXT?
 
查不出来?
将参数范围设大点试试,看是不是精度问题。
设为 EDIT。TEXT当然可以,只不过要将
EDIT。TEXT中的字符用STRTOCUR函数转成
货币型。
 
MECH: 程序运行之后报错:
’INVAILD USE OF KEYWORD。
TOKEN:>?
LINE NUMBER :2‘ PROCESS STOPPED
 
清除以前的ALIAS,
重新建一个,重新启动电脑。
 
SELECT * FROM orders
WHERE AmountPaid>1000.01 AND AmountPaid<5000.89
这个SQL可以的.我试过了.
下面这个应该可以.您单步执行试试.

{在SQL中写:
SELECT * FROM XXX
WHERE MONEY>:LMONEY AND MONEY<:HMONEY

在打开之前
QUERY1.PARAMBYNAME('LMONEY').ASCURRENCY:=1000.89;
QUERY1.PARAMBYNAME('HMONEY').ASCURRENCY:=5000.01;
QUERY1.CLOSE;
QUERY1.OPEN;
}
 
请不要用MONEY这个保留字
 
如要查询big>MONEY>small,可如下:
1.如big和small为字符型,则
table1.filter:='MONEY<'+big+' and '+'MONEY>'+small;
table1.filtered:=true;
2.如big和small为货币型,则
table1.filter:='MONEY<'+curtostr(big)+' and '+'MONEY>'+curtostr(small);
table1.filtered:=true;
 
还是eyes4的较好,float型的可能不很稳定
 
多人接受答案了。
 
后退
顶部