線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:899
推到 Plurk!
推到 Facebook!

请帮忙看看这个SQL语句?

尚未結案
yumena555
一般會員


發表:6
回覆:7
積分:2
註冊:2005-10-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-27 09:21:02 IP:211.136.xxx.xxx 未訂閱
我写了1个SQL语句如下: str:='select * from 工单 where 产品 ="' edit2.Text '" AND 日期 between "' str1 '" and "' str2 '"'; 其中str1和str2分别是YEAR-DATE-01、YEAR-DATE-31的格式,本意是想从工单表中查出指定年月里某产品的记录,可实际运行后发现了错误。假如表中有这样一条记录:AAA 2005-11-27,那么当我输入AAA,2005,11运行的结果正确,而输入AAA,2005,1 时也能显示出这条记录,这时候本来应该是找到0条记录的,请问错误出在哪?
kgt
高階會員


發表:17
回覆:308
積分:165
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-27 17:57:54 IP:61.219.xxx.xxx 未訂閱
str1和str2分?是YEAR-DATE-01、YEAR-DATE-31的格式?-->是否描述有誤 ?我?入AAA,2005,11?行的?果正确-->所代表的變數為?格式為? ?入AAA,2005,1 ?也能?示出????,??候本???是找到0???的-->請先確定database中,是否真的存在此筆記錄? 您的語句str:='select * from 工? where ?品 ="' edit2.Text '" AND 日期 between "' str1 '" and "' str2 '"';-->請將這些變數值show出來,應是between語法造成的結果。
yumena555
一般會員


發表:6
回覆:7
積分:2
註冊:2005-10-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-11-28 10:21:12 IP:211.136.xxx.xxx 未訂閱
对不起,写错了。是YEAR-MONTH-01和YEAR-MONTH-31,本意是想从工单表中查出指定年月里某产品的记录。用了2个edit和1个ComboBox,edit1用来输入年份,edit2用来输入产品名称,ComboBox用来输入月份,默认是1月。代码如下: str1:=''; str2:=''; str1:=str1 edit1.Text '-'; str1:=str1 ComboBox1.Text '-'; str2:=str1 '31'; str1:=str1 '01'; str:=''; str:=str 'select * from 工单 where 产品="' edit2.Text '" and 日期 between "' str1 '" and "' str2 '"'; //showmessage(str); query1.Close; query1.SQL.Clear; query1.SQL.Add(str); query1.RequestLive:=true; query1.Open; 其中“日期”在资料库中是文本类型,格式是YEAR-MONTH-DATE。资料库中有2条记录 AAA 2005-11-27和 AAA 2005-6-27,当输入AAA,2005,11时,运行只找到前面这条记录,结果正确,同样输入6月只找到后面那条记录,运行也正确;而输入AAA,2005,1时,正确结果应该是找到0条记录的,但却把资料库中名称是AAA的记录全输出来了。
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-11-28 10:31:39 IP:61.219.xxx.xxx 未訂閱
您好, 請試一下處理月份, 1到9月改成 01 到 09 因為字串相比, 您的程式會變成 select * from 工单 where 产品 ="' edit2.Text '" AND 日期 between '2005-1-01' and '2005-1-31' 若改成 between '2005-01-01 and '2005-01-31' 就不會包含 2005-11-27 了
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
系統時間:2024-09-09 13:21:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!