投票的sql怎么写

1.sql查询,投票的数据库中如何统计票数并排名呢楼上的语句没有毛病,不过搂主提供了userinfo表,这里如果某个用户没有得票的话,就统计不上了,还是join一把比较好点 。另外直接查询的话结果体现不出来名次
select identity(int,1,1) as [名次],a.username as [用户名],count(*) as [票数]
into #temporders
from userinfo a left join votes b
on a.username=b.username
group by a.username
order by [票数] desc
select *
from #temporders
order by [名次]
2.怎样建立投票系统数据库各种类型数据的高等界面,后来逐渐演变成满足所有数据访问需要的完整解datamodule4.adoquery2.sql.add('SELECT借书证号,密码FROM[user]WHERE(借书证号=:tt)'); datamodule4.adoquery2.parameters[0].value:=username; datamodule4.adoquery2.open; 在为TQuery或TADOquery部件设置SQL属性时调用Close方法总是很安全的,如果TQuery或TADOquery部件已经被关闭了,调用Close方法时不会产生任何影响 。
在应用程序中为SQL属性设置新的SQL命令语句时,必须要调用Clear方法以清除SQL属性中现存的SQL命令语句,如果不调用Clear方法,便调用Add方法向SQL属性中设置SQL命令语句,那么新设置的SQL命令语句会追加在现存SQL命令语句后面,在程序运行时常常会出现出乎意料的查询结果甚至程序无法运行下去 。在这里要特别注意的,一般情况下TQuery或TADOquery部件的SQL属性只能包含一条完整的SQL语句,它不允许被设置成多条SQL语句 。
当然有些数据库服务器也支持在TQuery或TADOquery部件的SQL属性中设置多条SQL语句,只要数据库服务器允许这样,我们在编程时可以为SQL属性设置多条SQL语句 。在为TQuery或TADOquery部件设置完SQL属性的属性值之后,也即编写好适当的SQL程序之后,可以有多种方式来执行SQL程序 。
在设计过程中,设置完TQuery或TADOquery部件的SQL属性之后将其Active属性的值置为True,这样便可以执行SQL属性中的SQL程序,如果应用中有与TQuery或TADOquery部件相连的数据浏览部件(如TDDGridTDBEdit等)那么在这些数据浏览部件中会显示SQL程序的执行结果 。在应用程序运行过程中,通过程序调用TQuery或TADOquery组件的Open方法或ExecSQL方法可以执行其SQL属性中的SQL程序 。
Open方法和ExecSQL方法是不一样的 。Open方法只能用来执行SQL语言的查询语句(Select命令),并返回一个查询结果集,而ExecSQL方法还可以用来执行其它常用的SQL语句(如INSERT,UPDATE,DELETE等命令),例如: Query1.Open(这样会返回一个查询结果集) 如果调用Open方法,而没有查询结果时,会出错 。
此时应该调用ExecSQL方法来代替Open方法 。如: Query1.ExecSQL(没有返回结果) 当然在设计应用程序时,程序设计人员是无法确定TQuery或TADOquery组件中的SQL语句是否会返回一个查询结果的 。
对于这种情况应当用Try…Except模块来设计程序 。在Try部分调用Open方法,而在Except部分调用ExceSQL方法,这样才能保证程序的正确运行 。
例如: Try Query1.Open Except Query1.ExecSQL End 通过Tquery或TADOquery组件可以获得两种类型的数据: u“活动”的数据 这种数据就跟通过TTable部件获得的数据一样,用户可以通过数据浏览部件来编辑修改这些数据,并且当调用Post方法或当焦点离开当前的数据浏览部件时,用户对数据的修改自动地被写回到数据库中 。u非活动的数据(只读数据) 用户通过数据浏览部件是不能修改其中的数据 。
在缺省情况下,通过TQuery部件获得的查询结果数据是只读数据,要想获得“活动”的数据,在应用程序中必须要设置Tquery或TADOquery组件的RequestLive属性值为True,然而并不是在任何情况下(通过设置RequestLive的属值True)都可以获得“活动”的数据的,要想获得“活动”的数据,除了将TQuery部件的RequestLive属性设置为True外,相应的SQL命令还要满足以下条件 。本地SQL语句查询情况下,要得到可更新的数据集,SQL语句的限制为: n查询只能涉及到一个单独的表 nSQL语句中不能包含ORDERBY命令 nSQL语句中不能含聚集运算符SUM或AVG n在Select后的字段列表中不能有计算字段 n在Select语句WHERE部分只能包含字段值与常量的比较运算,这些比较运算符是:Like,>,=,评论0 0 0 。