表a 列:ID cardNo CustomerName
表B 列:cardNo UnitCost FinalPrice PartNo PartDescription Quantity
(Quantity is null代表是工时,否则代表材料)
说明:并不是所有的客户都使用工时和材料,比如客户先预约登记一下还没有为他服务,所以没有使用材料和工时.
以下所有列出的信息均为a表为基准
1)列出客户名(CustomerName)、cardNo(卡号)以及每个客户总共使用的材料和工时的总和SQL语句。
2)列出客户名(CustomerName)、cardNo(卡号)以及每个客户总共使用的材料的总和、每个客户总共使用的工时的总和、每个客户总共使用材料和工时的总和SQL语句
表B 列:cardNo UnitCost FinalPrice PartNo PartDescription Quantity
(Quantity is null代表是工时,否则代表材料)
说明:并不是所有的客户都使用工时和材料,比如客户先预约登记一下还没有为他服务,所以没有使用材料和工时.
以下所有列出的信息均为a表为基准
1)列出客户名(CustomerName)、cardNo(卡号)以及每个客户总共使用的材料和工时的总和SQL语句。
2)列出客户名(CustomerName)、cardNo(卡号)以及每个客户总共使用的材料的总和、每个客户总共使用的工时的总和、每个客户总共使用材料和工时的总和SQL语句
这句话意思不是很懂,是不是表示如果Quantity是空的时候就表示为工时,但如果为空,那么工时不就也是空?
select A.CustomerName,A.cardNo, M.gongshi,N.cailiao from A left outer join (
select cardNo,count(*) as gongshi from B where Quantity is null group by cardNo) M on A.cardNo = M.cardNo
left outer jion (
select cardNo,count(*) as gongshi from B where Quantity is not null group by cardNo) N on A.cardNo = N.cardNo
select cardNo,count(*) as gongshi from B where Quantity is null group by cardNo) M on A.cardNo = M.cardNo
left outer jion (
select cardNo,count(*) as cailiao from B where Quantity is not null group by cardNo) N on A.cardNo = N.cardNo