select count(a1.*)??(50分)

  • 主题发起人 主题发起人 zhouaiping
  • 开始时间 开始时间
Z

zhouaiping

Unregistered / Unconfirmed
GUEST, unregistred user!
select a1.car_id ,a2.car_factroy ,count (a1.*) as count from input a1,type a2
where a1.car_id=a2.car_id and a1.input_data between 2001-10-1 and 2002-11-8
在sql server中怎么执行下来说a1.car_id 和 a2.car_factroy 错误
是不是between也不好用?
 
是count()函数的问题,你的语句有问题的;between and 语句不会错的;
 
count (a1.*) ,没有见过这样用的吧,把时间加上单引号试试
 
select a1.car_id ,a2.car_factroy ,count (a1.*) as count from input a1,type a2
where a1.car_id=a2.car_id and a1.input_data between 2001-10-1 and 2002-11-8
吧count (a1.*) as count 改为 count (a1.*) as count1
试试
 
count是 sql里的函数,你的sql有问题。
 
1.不要用像 input ,type ,count 等的單詞,因為可能它是開發工具或數據庫的關鍵字,這樣
的錯誤很難查.
2.select count 是求集合計算的,只有一條紀錄,而 select a1.car_id ,a2.car_factroy
可能有多條紀錄,這樣放在一起,肯定會出錯.
想一想, 你的需求是怎樣的?
 
我是这样想的:统计a1表car_id中有重复的计录,放到count1中去,但一用count()在语法
上就出错不知何故,要是去了count()可以执行就是不会得到我要的效果,请指点!!
 
如果在后面加上group by a1.car_id也会出错!!!
 
可能你是想按 a1.car_id 分類匯總紀錄數,這樣好像一條Sql 語句不能完成,些procedure 吧.
實現起來就很簡單了.
 
procedure 能给个例子吗?
 
我急用啊大伙儿帮个忙!
 
告訴你思路吧.
Create procedure GroupCar_ID
as
begin
declare @CarID int
declare cur_table cursor for
select distinct car_id from [input] order by car_id;
// 定義Cursor.
Open cur_table
fetch next from cur_table into @CarID
While @@FETCH_STATUS=0 begin
select a1.car_id ,a2.car_factroy ,count (a1.*) as count1
from [input] a1,[type] a2
where a1.car_id=a2.car_id
[red]and a1.car_id=@CarID[/red]
and a1.input_data between 2001-10-1 and 2002-11-8
fetch next from cur_table into @CarID
end
end
只是思路,而且沒有調試,希望對你有幫助.
 
to zhouaiping
留下qq可以一起研究一下
 
多人接受答案了。
 
后退
顶部