一个关于SQL语句如何写的问题,急啊! (50分)

  • 主题发起人 主题发起人 fpsky
  • 开始时间 开始时间
F

fpsky

Unregistered / Unconfirmed
GUEST, unregistred user!
有两个表:
表A ----->
序号 数量 单价 总计 日期
0001 33 1.5 2001-10-29
0001 57 1.5 2001-10-30
0002 36 1.3 2001-10-29
...

表B ---->
序号 身份证号 姓名 地址
0001 ...... X1 Y1
0002 ...... X2 Y2
0003 ...... X3 Y3

想把两个表合并求值,得出:

序号 姓名 身份证号 地址 单价 数量 总计 日期(表A中的年-月)

注意:结果表中 ‘ 日期(月份) ’ 是表A中年月相同的记录的群组(注意:是表A中表A中年月相同的记录)
我用的是BDF表
请问大虾,这样的SQL语名怎样写,谢谢!
 
select 序号, 姓名, 身份证号, 地址, 单价, 数量, 总计, 日期(月份)
from 表A, 表B
where 表A.序号 = 表B.序号
group by 序号,日期(月份)
 
select a.序号,姓名,身份证号,sum(地址),sum(数量),总计,month(日期) 日期(月份)
from a,b where a.xh=b.xh group by month(日期),a.序号,姓名,身份证号


显示单价没有意义了,不能求sum
 
select a.序号,b.姓名,b.身份证号,b.地址,a.单价,a.数量,a.总计,a.日期 from a,b where a.序号=b.序号 group by a.序号
 
对不起,dbf好像不支持month函数
 
谢谢你们的回答,可是还有点不对:
日期(月份)是表A中相同的 年-月 不包括日
而且还要求出 总计=数量*单价
 
好象你描述的非常的不清楚,

select * from a,b

可以得到 a*b 的合并表.
 
如果用dbf表select是不能实现上面的功能只有用编程的方法解决
 
大家给想想办法,这个很急,如查分不构可以加
 
我知道了,你并不想汇总,只是查出结果集
select a.序号,姓名,身份证号,地址,数量,单价,总计,month(日期) 日期(月份)
from a,b where a.xh=b.xh

现在的难点是没有求出年月的函数,对不对?
 
想求出表A中年月相同的记录的总计值,年月也要显示
 
总计求sum就行了,加个group by
年月不知道,我在试试
 
大家看看问题在那
with Query1 do
begin
sql.Clear;
SQL.Add('select l02.code,l02.mc,l02.sfzh,l02.addr,l04.lrrq,l04.dj,sum(l04.sl) as zsl,sum(l04.sum) as zsum');
SQL.Add(' from l02,l04');
SQL.Add(' where (l02.code=l04.code) and (l04.lrrq>=:l04.lrrq) and (l04.lrrq<=:l04.lrrq)');
SQL.Add(' group by l02.code,l04.lrrq,l02.mc,l02.sfzh,l02.addr,l04.dj'); // group by B.序号,B.姓名,B.身份证号,B.地址,A.单价;
ParamByName('l04.lrrq').AsString := DateToStr(DateTimePicker1.date);
ParamByName('l04.lrrq').AsString := DateToStr(DateTimePicker2.date);
open;
end;
 
用formatdatetime('yyyy-mm-dd',datetimepicker1.date);
 
基本同意萧月禾的看法,关注
 
接受答案了.
 
后退
顶部