string str = "select SellInfo.WareNum as WareNum,WareInfo.WareName as WareName,count(SellInfo.WareID) as " +
              "  SellNum,sum(SellInfo.SellPrice) as AllMoney,sum(SellInfo.Profit) as AllProfit from SellInfo inner " +
             "join WareInfo on SellInfo.WareNum=WareInfo.WareNum" +
            "  where  SellInfo.MulID='" + mulID +            "' and SellInfo.SellTime between #" + time1 + "# and #" + time2 +
            "# group by SellInfo.WareNum,WareInfo.WareName   " +
          "order by SellInfo.WareNum";
这里的红色部分不知道有什么问题,我去掉后就可以正常.但是又必需加上这个限定条件.请高手指教.谢谢了.

解决方案 »

  1.   

    加上:group by SellInfo.WareNum,WareInfo.WareName,SellInfo.MulID
      

  2.   

    where 改成 and 试试。
      

  3.   

    你用了inner join,后面不能这样用where你把where改为and就可以了。如果你还不明白,自己搜索一下inner join和where的区别
      

  4.   

     例如搜索的一个例子
    select   *   from   table1   inner   join   table2   on   table1.id   =   table2.id   
      select   *   from   table1   ,   table2   where   table1.id   =   table2.id   这2个结果一样,但还是有区别的。
      

  5.   

    WHERE子句中使用的连接语句,在数据库语言中,被称为隐性连接。INNER JOIN……ON子句产生的连接称为显性连接。(其他JOIN参数也是显性连接)WHERE 和INNER JOIN产生的连接关系,没有本质区别,结果也一样。但是!隐性连接随着数据库语言的规范和发展,已经逐渐被淘汰,比较新的数据库语言基本上已经抛弃了隐性连接,全部采用显性连接了。 
      

  6.   

    尽量使用Join 而不是Where来列出关联条件,特别是多个表联合的时候。原因是:(1)在效率上,Where可能具有和Inner join一样的效率。但基本可以肯定的(通过SQLServer帮助和其它资料,以及本测试)是Join的效率不比Where差。 (2)使用Join可以帮助检查语句中的无效或者误写的关联条件