如何求得最新价格? |
尚未結案
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
是这样的,我想比较出某产品的最新价格,现在字段(DANJIA单价),(RQ日期),如何用SQL语句做判断,并在DBEDIT中显示出来。谢谢各前辈!小弟敬上。
1.取第一条就是的了
select 产品,最新价格,RQ日期 FORM TABLE where 产品=??? order by RQ日期 desc 2.找出最新的的日期
select 产品,最新价格,MAX(DAYS(RQ日期))FORM TABLE where 产品=??? 3.复杂的SQL找出
SELECT 产品,最新价格,RQ日期 FORM TABLE WHERE RQ日期>ALL (SELECT RQ日期 FORM TABLE WHERE 产品=??? ) AND 产品=??? 风花雪月 e梦情缘
------
风花雪月 e梦情缘 |
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
我用的是DB表,我的情况为:我已经用了一个SQL查询,显示在DBGRID上,现想在显示的DBGRID表(包含有日期,单价,数量)中,提取出最新价格和平均价格,然后在另一控件DBEDIT中显示出来 。在字段中没有用到最新价格。 另:我现在有4个DB表,表中有着不同的内容:A中有编码,单价,日期。。。,等;B中有编码,单价,数量。。。。,其他表类似也有这些,但各表中的编码互相穿插,有相同的,也有不相同的,其他各字段也没有统一的相同的项。如何把这几个表统一起来。在DBGRID表中显示编码,单价,数量,日期等。
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
//显示在DBGRID的SQL查询
with recordQuery do
begin
close;
sql.Clear;
sql.Add('SELECT a.bianma(编码),a.mingcheng(名称),a.daihao(代号),a.jzrq(日期),a.danjia(单价),a.ckm,a.jzdh ');
sql.add('FROM "' dblj 'cwjbmxz"a');
sql.Add(wcj);//wcj:wcj:='where bianma like"' bm '%"';
sql.Add('and danjia<>0');
sql.add('and jzrq BETWEEN "' result1 '" AND "' result2 '"');//result1,2:是一个DateTimePicker时间
sql.add('order by bianma');
open;
end;
现我另有二个控件DEBEIT1,2。Q:点击DBGRID表的某一产品时,在DBEDIT1,2中显示出最新价格,和平均价格
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
要另外用 Query 做
NewPriceQuery : 最新價錢,連接 DBEdit1 若你也想看日期,可連 jzrq 也 select
AvgPriceQuery : 平均價錢,連接 DBEdit2 在 recordQueryAfterScroll 事件設定 :
NewPriceQuery.Active := false;
NewPriceQuery.SQL := 'Select danjia from "' dblj 'cwjbmxz" where bianma = :bianma order by jzrq desc';
NewPriceQuery.ParamByName('bianma') := recordQuery.FieldByName('bianma').AsString;
NewPriceQuery.Active := true;
AvgPriceQuery.Active := false;
AvgPriceQuery.SQL := 'Select AVG(danjia) from "' dblj 'cwjbmxz" where bianma = :bianma';
AvgPriceQuery.ParamByName('bianma') := recordQuery.FieldByName('bianma').AsString;
AvgPriceQuery.Active := true;
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
只是幫 Justmade 大大補些漏打的字, 希望 diety 問題早日解決.
引言: NewPriceQuery.Active := false; NewPriceQuery.SQL.Text := 'Select danjia from "' dblj 'cwjbmxz" where bianma = :bianma order by jzrq desc'; NewPriceQuery.ParamByName('bianma').AsString := recordQuery.FieldByName('bianma').AsString; NewPriceQuery.Active := true; AvgPriceQuery.Active := false; AvgPriceQuery.SQL.Text := 'Select AVG(danjia) from "' dblj 'cwjbmxz" where bianma = :bianma'; AvgPriceQuery.ParamByName('bianma').AsString := recordQuery.FieldByName('bianma').AsString; AvgPriceQuery.Active := true; |
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
另附:
procedure TfindForm.recordQueryAfterScroll(DataSet: TDataSet);
begin
chengbQuery.Active := false;
chengbQuery.SQL.Text := 'Select danjia from "' dblj 'cwjbmxz" where bianma =: bianma order by jzrq desc';
chengbQuery.ParamByName('bianma').AsString :=recordQuery.FieldByName('bianma').AsString;
chengbQuery.Active := true;
with recordQuery do
begin
bmEdit.Text :=recordQuery.fieldbyname('bianma').AsString ;
mcEdit.Text :=recordQuery.fieldbyname('mingcheng').AsString ;
ckEdit.Text :=recordQuery.fieldbyname('ckm').AsString ;
rkdhedit.Text :=recordQuery.fieldbyname('jzdh').AsString ; end; end;
其中 recordQuery 是记录查询,显示在DBGrid中;
chengbQuery 是最新价格查询,显示在DBEdit中。
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
引言: 另附: procedure TfindForm.recordQueryAfterScroll(DataSet: TDataSet); begin chengbQuery.Active := false; chengbQuery.SQL.Text := 'Select danjia from "' dblj 'cwjbmxz" where bianma = :bianma order by jzrq desc'; chengbQuery.ParamByName('bianma').AsString :=recordQuery.FieldByName('bianma').AsString; chengbQuery.Active := true; with recordQuery do begin bmEdit.Text :=recordQuery.fieldbyname('bianma').AsString ; mcEdit.Text :=recordQuery.fieldbyname('mingcheng').AsString ; ckEdit.Text :=recordQuery.fieldbyname('ckm').AsString ; rkdhedit.Text :=recordQuery.fieldbyname('jzdh').AsString ; end; end; 其中 recordQuery 是记录查询,显示在DBGrid中; chengbQuery 是最新价格查询,显示在DBEdit中。紅色部份要連在一起的因為 : 就是說明連著的字是一個 parameter 發表人 - Justmade 於 2003/05/20 14:14:12 |
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |