共有四张表 其中表A订单表 aid ,bid, ordermoney,表B教师 bid,cid,表C用户 cid, cname,表D结算表 aid ,cname ,accontmoney 
 通过表A.bid=表B.bid 可以查询该教师的订单
通过表B.bid=表C.bid 可以查询表C用户的cname  
通过表A.aid=表D.aid可以知道该订单是否在结算表中完成
现在从前台传来参数cname 要通过where条件 表C的cname= ?  
去查询 表A的总数,已完结的订单数,已完结的总金额,未完结的订单数,未完结的总金额,结算总金额,用户名  这7个字段的数据
请教一下个各位帅到无边的大神们如何写这一个SQL,能帮忙写一下大概吗  
我自己写的是类似这种形式 :select (select count(*) from 表A),(select count(*) from 表B) from 表A 但是这样的话 好像思路不对哦 。

解决方案 »

  1.   

       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
      

  2.   

    听说有人找我呢?哈哈哈。只写了已完结的订单数,其他的类似,仅供参考:
    select aid ,count(1) as 总数,(select count(1) from 表D where aid = t.aid) from 表A join (
    select top 1  aid from 表C join 表B 
    on 表B.bid join 表A 
    on 表A.bid=表B.bid where cname='传过来的值') t on t.aid =表A .aid
    group by aid 
      

  3.   

    第一个aid是哪个表的 大神帅哥
      

  4.   

    第一个aid是哪个表的 大神帅哥确实忘写了,表A的