資料行前置詞"XXXX"與用於查詣中的資料表名稱或別名不符,該如何解決??? |
尚未結案
|
rich777
一般會員 發表:25 回覆:25 積分:10 註冊:2002-04-22 發送簡訊給我 |
請問各位先進高手們~~~
有一SQL使用方法不解...煩請解答?
我用SQL6.5的ISQ/w測試了一段SQL指令如下:
Select STINB.LOT_NO,STINB.MAT_NO,STINB.DESP,SUM(QTY) T1 from STINH,STINB
join [Basic].[dbo].[Material] MT on MT.MAT_NO=STINB.MAT_NO
Where STINH.ST_NO=STINB.ST_NO
and STINH.STATUS=2
and STINH.CDate >= "2001/01/01" and STINH.CDate <= "2003/12/31"
and left(STINB.MAT_NO,1)='1'
and MT.PROD_TYPE='MLV'
group by STINB.LOT_NO,STINB.MAT_NO,STINB.DESP
其結果是我想要的沒錯~~~ 但在實際應用上其日期欄(CDate)希望依使用者輸入的不同而跑出不同的資料
故在DELPHI3的BUTTOM將其改為:
Query1.SQL.Clear;
Query1.SQL.Add('Select STINB.LOT_NO,STINB.MAT_NO,STINB.DESP,SUM(QTY) T1 from STINH,STINB ');
Query1.SQL.Add('join [Basic].[dbo].[Material] MT on MT.MAT_NO=STINB.MAT_NO ');
Query1.SQL.Add('and STINH.STATUS=2 ');
Query1.SQL.Add('and left(STINB.MAT_NO,1)="1" ');
Query1.SQL.Add('and MT.PROD_TYPE="MLV" ');
Query1.SQL.Add('and STINH.CDate >= "' ME_DateB.Text '" and ');
Query1.SQL.Add('STINH.CDate <= "' ME_DateE.Text '" ');
Query1.SQL.Add('group by STINB.LOT_NO,STINB.MAT_NO,STINB.DESP ');
Query1.Open;
卻出現了下列錯誤???
一般SQL錯誤
資料行前置詞"SHINH"與用於查詣中的資料表名稱或別名不符 我確定其日期格式無誤耶,為什麼會這樣吶?
百思不解期望各位先進高手們指導之~~~ 開發環境為:NT2000 sq2000 & WIN09 DELPHI3
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
Query1.SQL.Add('and STINH.CDate >= "'+ME_DateB.Text+'" and ');
Query1.SQL.Add('STINH.CDate <= "'+ME_DateE.Text+'" ');
改成這樣
Query1.SQL.Add('and STINH.CDate BETWEEN ' #39 ME_DateB.Text #39 ' and ' #39 ME_DateE.Text #39);
TRY TRY SEE 發表人 - chih 於 2003/05/05 15:55:42
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
請測一下, 將下列紅色部分加入, 然後將該檔打開並利用 ISQ/w 來 check 一下該語法是否有問題, 這樣 debug 比較快..
Query1.SQL.Clear; Query1.SQL.Add('Select STINB.LOT_NO,STINB.MAT_NO,STINB.DESP,SUM(QTY) T1 from STINH,STINB '); Query1.SQL.Add('join [Basic].[dbo].[Material] MT on MT.MAT_NO=STINB.MAT_NO '); Query1.SQL.Add('and STINH.STATUS=2 '); Query1.SQL.Add('and left(STINB.MAT_NO,1)="1" '); Query1.SQL.Add('and MT.PROD_TYPE="MLV" '); Query1.SQL.Add('and STINH.CDate >= "' ME_DateB.Text '" and '); Query1.SQL.Add('STINH.CDate <= "' ME_DateE.Text '" '); Query1.SQL.Add('group by STINB.LOT_NO,STINB.MAT_NO,STINB.DESP '); Query1.SQL.SaveToFile('C:\SQL.TXT'); Query1.Open;發表人 - timhuang 於 2003/05/05 16:19:46 |
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
修改如下:
Query1.SQL.Clear;
Query1.SQL.Add('Select STINB.LOT_NO,STINB.MAT_NO,STINB.DESP,SUM(QTY) T1 from STINH,STINB ');
Query1.SQL.Add('join [Basic].[dbo].[Material] MT on MT.MAT_NO=STINB.MAT_NO ');
Query1.SQL.Add('and STINH.STATUS=2 ');
Query1.SQL.Add('and left(STINB.MAT_NO,1)=''1'' ');
Query1.SQL.Add('and MT.PROD_TYPE="MLV" ');
Query1.SQL.Add('and STINH.CDate >= ''' ME_DateB.Text ''' and ');
Query1.SQL.Add('STINH.CDate <= ''' ME_DateE.Text ''' ');
Query1.SQL.Add('group by STINB.LOT_NO,STINB.MAT_NO,STINB.DESP ');
showmessage(Query1.sql.text); 风花雪月 e梦情缘
------
风花雪月 e梦情缘 |
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
rich777
一般會員 發表:25 回覆:25 積分:10 註冊:2002-04-22 發送簡訊給我 |
感謝各位先進高手們的回應...
我終於找到問題了...
原來是我的sql語錯錯誤耶~~~ Query1.SQL.Clear;
Query1.SQL.Add('Select STINB.LOT_NO,STINB.MAT_NO,STINB.DESP,SUM(QTY) T1 from STINH,STINB ');
Query1.SQL.Add('join [Basic].[dbo].[Material] MT on MT.MAT_NO=STINB.MAT_NO ');
Query1.SQL.Add('where STINH.STATUS=2 ')<===這行錯誤
Query1.SQL.Add('and left(STINB.MAT_NO,1)="1" ');
Query1.SQL.Add('and MT.PROD_TYPE="MLV" ');
Query1.SQL.Add('and STINH.CDate >= "' ME_DateB.Text '" and ');
Query1.SQL.Add('STINH.CDate <= "' ME_DateE.Text '" ');
Query1.SQL.Add('group by STINB.LOT_NO,STINB.MAT_NO,STINB.DESP ');
Query1.Open;
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |