select count(tm.ID)  from dbo.T_Money as tm  
left join dbo.T_Item as ti on tm.ID =ti.ID
where  ti.item ='AAA' and tm.[datetime] between '2012-03-01' and '2012-03-21') order by tm.ID DESC 我想查的是两个时间之间的 数据 还有个条件就是 ti.item ='AAA'  ,写出来就是查询不对,求高手,。。坐等,,晚上也登。。
最后等到的是查询出来的总条数

解决方案 »

  1.   


    select count(*) from dbo.T_Money as tm   
      left join dbo.T_Item as ti 
        on tm.ID =ti.ID
          where ti.item ='AAA' and tm.[datetime] between '2012-03-01' and '2012-03-21'
            order by tm.ID DESC 
      

  2.   

    select count(*) from dbo.T_Money as tm   
      left join dbo.T_Item as ti 
        on tm.ID =ti.ID
          where ti.item ='AAA' and tm.[datetime] between '2012-3-01' and '2012-3-21'
            order by tm.ID DESC 
      

  3.   


    select count(*) from dbo.T_Money as tm   
      left join dbo.T_Item as ti 
        on tm.ID =ti.ID
          where ti.item ='AAA' and(tm.[datetime] between '2012-3-01' and '2012-3-21')
            order by tm.ID DESC 
      

  4.   


    运行出来报的这个错,
    Column "dbo.T_Money.ID" is invalid in the ORDER BY clause because it is not contained in either an aggregate function or the GROUP BY clause.
      

  5.   

    你这个count 就会返回一个值 无需加order byselect count(tm.ID) from dbo.T_Money as tm   
    left join dbo.T_Item as ti on tm.ID =ti.ID
    where ti.item ='AAA' 
    and tm.[datetime] between '2012-03-01' and '2012-03-21'
      

  6.   

    把你的left join 改成inner join 试试看
      

  7.   

    select count(tm.ID) from T_Money as tm
    left join T_item as ti on tm.ID=ti.ID
    where tm.datetime between '2012-03-01' and '2012-03-21' and ti.item='AAA'
      

  8.   

    谢谢这位道友,我已经写出来了。。left jion 从新连接两个表,。
      

  9.   

    select count(*) as [count] from (
    select * from dbo.T_Item as ti where ti.item='AAA') as b
    left join 
    (select * from dbo.T_Money as tm   
         where tm.[datetime] between '2012-3-01' and '2012-3-21'
        ) as a  on  b.ID=a.ItemID
      

  10.   

    一个是ORDER BY的对象不在查询对象中吧
      

  11.   


    inner join  没用过,,,