select 
(select sum((lingB.单价-kucun.进价)*lingB.数量) from lingB where kucun.名称=lingB.名称 ) as 利润
from lingB,kucun
where  lingB.名称=kucun.名称
总提示 在包含外部引用的被聚合表达式中指定了多个列。如果被聚合的表达式包含外部引用,那么该外部引用就必须是该表达式中所引用的唯一的一列。
 哪里不对啊?

解决方案 »

  1.   


    select 利润 =(select sum((lingB.单价-kucun.进价)*lingB.数量)  
    from lingB where t.名称=名称 )
    from kucun t
      

  2.   

    try:
    select 
    (select sum((lingB.单价-kucun.进价)*lingB.数量) from lingB where kucun.名称=lingB.名称 ) as 利润 
    from lingB,kucun 
    where  lingB.名称=kucun.名称
    GROUP BY lingB.名称,kucun.名称
      

  3.   

    select 
    (select sum((lingB.单价-kucun.进价)*lingB.数量) from lingB where kucun.名称=lingB.名称 group by kucun.名称 ) as 利润 
    from lingB,kucun 
    where  lingB.名称=kucun.名称  
      

  4.   

    select lingB.名称,
    (select sum((lingB.单价-kucun.进价)*lingB.数量) from lingB where kucun.名称=lingB.名称 group by kucun.名称 ) as 利润 
    from lingB,kucun 
    where  lingB.名称=kucun.名称  
      

  5.   

    逻辑不清楚,两个lingB都没有用别名区分
      

  6.   

    htl258  soft_wsx 你们写的还是提示 “在包含外部引用的被聚合表达式中指定了多个列。如果被聚合的表达式包含外部引用,那么该外部引用就必须是该表达式中所引用的唯一的一列。 ”js_szy 你写的 在修改为
    select 利润 =(select sum((lingB.单价-kucun.进价)*lingB.数量) from lingB where kucun.名称=lingB.名称)  
    from lingB where t.名称=名称 )
    from kucun t
    后出现3个利润 但并没分开 而是累加到了一起
    guguda2008 该怎么写别名 让SQL识别 而不出现错误呢 
     谢谢大家 
      

  7.   

    select sum((lingB.单价-kucun.进价)*lingB.数量) As 利润 
    from lingB,kucun 
    where  lingB.名称=kucun.名称这样不行???
      

  8.   

    回楼上 行是行啊 但结果却是两个id 的利润之合 我想把它们分开 但一写group by就有上面的错误提示 
      

  9.   

    select sum((lingB.单价-kucun.进价)*lingB.数量) As 利润 
    from lingB,kucun 
    where  lingB.名称=kucun.名称 GROUP BY 表.ID
    你在后面加个GROUP BY ID就好了,两个表都有ID??
      

  10.   

    你说的没错 但这只是一部分 因为他是子查询 返回多余一个的值是系统不允许的 
    我用另外一个实现了 select lingA.id,lingA.日期,
           lingB.名称,lingB.数量,lingB.单价,kucun.进价*lingB.数量 as 成本 
    from lingA,lingB,kucun
    where lingA.id=lingB.Aid  and lingB.Aid=kucun.id
    order by lingA.id 
    compute sum(kucun.进价*lingB.数量) by lingA.id 执行结果为 请问有什么办法 让下面的sum放到上面的表后面为“利润总和”列呢?
      

  11.   

    你可以先求ID,加那个SUM作一表,再进行连接查询
      

  12.   

    表lingA(id 日期 购买人 合计总额 利润总额)  lingB(id Aid 名称 数量 单价 金额 )  kucun(id 名称 数量 进价)
    效果图: 需要把SUM放到上表 为“利润总额”列 谢谢了~