数据库查询问题!!急!急! (100分)

  • 主题发起人 主题发起人 ljbXS
  • 开始时间 开始时间
我在写一个海鲜投标系统,有好多人同是竟价好多海鲜,选出每种价格最底的竟标人,
显示字段有:编号、 品名、 日期、价格、 姓名 、 要求
我已经把这些都放在一个表中。
query1.SQL.Add('select min(单价)');
query1.SQL.Add('from date/huo.db');
query1.SQL.Add('group by 编号');
如果这样只能显示;编号;单价 如何显示全部;
query1.SQL.Add('select *');
query1.SQL.Add('from date/huo.db');
query1.SQL.Add('where (单价 in');
query1.SQL.Add('(select min(单价) from DATE/huo.db');
query1.SQL.Add('group by 品名))');
如果这有时是数据对,有时有几个品名没有选出最底价,价格高也在.
我已给你写了一封邮件
 
你的SQL写的是
1。先找出每种物品最低的价格
例如
a 100
b 200
但是可能a也有报价是200的
所以价格 in (100,200)
就会把a 报价是200的也选出来,就不对了
 
集合操作SQL句法:
select * from date/huo.db a join (select 品名, min(价格) as 价格
from date/huo.db group by 品名) as b
on a.品名=b.品名 and a.价格=b.价格
 
你的自查询写的有问题正如brave所说在in语句中你选出的是一组最低价
 
能说的清楚一些吗?
 
订了邮件通知收不到[:(],没有及时回答你。
原来上次写错了,少写了一个括号,应该这样写:
query1.SQL.Add('select *');
query1.SQL.Add('from date/huo.db');
query1.SQL.Add('where (品名,单价) in');
query1.SQL.Add('(select 品名,min(单价) from DATE/huo.db');
query1.SQL.Add('group by 品名)');
先把日期查询去掉,看看对不对,然后再加上日期来调试,应该没问题的。
 
(品名,单价)提示这错了
 
你先把上面的SQL拿到SQL Explorer里面去执行一下试试,不要放在Delphi里执行,看看有什么信息提示?
 
我给你源程序
 
我已经发出
 
接受答案了.
 
你有些过分了[:(!]
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部