单选题有订单表如下:订单(订单号(C,4),客户号(C,4),职员号(C,3),签订日期(D),金额(N,6,2))查询每个客户的总金额信息的正确SQL语句是(  )。A SELECT订单号,SUM(金额)FROM订单GROUP BY客户号B SELECT订单号,SUM(金额)FROM订单ORDER BY客户号C SELECT客户号,SUM(金额)FROM订单GROUP BY客户号D SELECT客户号,SUM(金额)FROM订单ORDER BY客户号

题目
单选题
有订单表如下:订单(订单号(C,4),客户号(C,4),职员号(C,3),签订日期(D),金额(N,6,2))查询每个客户的总金额信息的正确SQL语句是(  )。
A

SELECT订单号,SUM(金额)FROM订单GROUP BY客户号

B

SELECT订单号,SUM(金额)FROM订单ORDER BY客户号

C

SELECT客户号,SUM(金额)FROM订单GROUP BY客户号

D

SELECT客户号,SUM(金额)FROM订单ORDER BY客户号


相似考题
更多“单选题有订单表如下:订单(订单号(C,4),客户号(C,4),职员号(C,3),签订日期(D),金额(N,6,2))查询每个客户的总金额信息的正确SQL语句是(  )。A SELECT订单号,SUM(金额)FROM订单GROUP BY客户号B SELECT订单号,SUM(金额)FROM订单ORDER BY客户号C SELECT客户号,SUM(金额)FROM订单GROUP BY客户号D SELECT客户号,SUM(金额)FROM订单ORDER BY客户号”相关问题
  • 第1题:

    使用如下3个表:职员.DBF:职员号C(3),姓名C(6),性别C(2),组号N(1),职务C(10)客户.DBF:客户号C(4),客户名C(36),地址C(36),所在城市C(36)订单.DBF:订单号C(4),客户号C(4),职员号C(3),签订日期D,金额N(6,2)查询金额最大的那10%订单的信息。正确的SQL语句是______。

    A.SELECT*TOP 10 PERCENT FROM 订单

    B.SELECT TOP 10% *FROM 订单 ORDER BY 金额

    C.SELECT*TOP 10 PERCENT FROM 订单 ORDER BY 金额

    D.SELECT TOP 10 PERCENT * FROM 订单 ORDER BY 金额 DESC


    正确答案:D
    解析:Visual FoxPro的SELECT—SQL命令的一般语法格式如下:
        SELECT[ALL|DISTINCT]目标列表达式>[,目标列表达式>]…
        FROM基本表(或视图>[,基本表(或视图)>]…
        [WHERE条件表达式>]
        [GROUPBY列名1>[HAVING内部函数表达式>]]
        [ORDERBY列名2>[ASCIDESC]]
        [TOP数值表达式>[PERCENT]]
      说明:①ORDER BY子句:指定查询结果中记录按列名2>排序,默认升序。选项ASC表示升序,DESC表示降序。
      ②TOP子句:TOP子句必须与ORDER BY子句同时使用。数值表达式>表示在符合条件的记录中选取的记录数。范围1~32 767,排序后的若干记录只计一个。含PERCENT选项肘,数值表达式>表示百分比,记录数为小数时自动取整,范围0.01~99.99。

  • 第2题:

    假设 “ 订单 ” 表中有订单号、职员号、客户号和金额字段,正确的 SQL 语句只能是

    A)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 AND AVG_ 金额 >200

    B)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 AND AVG( 金额 )>200

    C)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 WHERE AVG( 金额 )>200

    D)SELECT 职员号 FROM 订单 GROUP BY 职员号 WHERE COUNT(*)>3 AND AVG_ 金额 >200


    正确答案:B

  • 第3题:

    查询2010年1月1日后签订的订单,并显示订单的订单号、客户名及签订日期,正确的SQL语句是( )。

    A.SELECT订单号,客户名,签订日期FROM订单JOIN客户0N订单.客户号=客户.客户号WHERE 签订日期>{^2010—1—1}

    B.SELECT订单号,客户名,签订日期FROM订单JOIN客户WHERE订单.客户号=客户.客户号AND 签订日期>{^2010—1—1}

    C.SELECT订单号,客户名,签订日期FROM订单,客户WHERE订单.客户号=客户.客户号AND签订日期<{^2010—1—1}

    D.SELECT订单号,客户名,签订日期FROM订单,客户ON订单.客户号=客户.客户号AND签订日期<{^2010—1—1}


    正确答案:A
    查询2010年1月1日后的订单,应表示为签订日期>{^2010—1—1},JOIN子句为普通连接(内部连接),应使用0N子句指定连接条件,WHERE子句在最后限定元组。

  • 第4题:

    设有表:0rder(订单号,客户号,职员号,签订日期,金额)。查询2007年所签订单的信息,并按金额降序排序,正确的SQL命令是( )。

    A. SELECT*FROM order WHERE YEAR(签订日期)=2007 0RDER BY金额DESC

    B. SELECT*FROM order WHILE YEAR(签订日期)=2007 0RDER BY金额ASC

    C. SELECT*FROM order WHERE YEAR(签订日期)=2007 0RDER BY金额ASC

    D. SELECT*FROM order WHILE YEAR(签订日期)=2007 0RDER BY金额DESC


    正确答案:A
    在SELECT查询语句中,用WHERE说明查询条件,而不是用WHILE。用DESC表示降序,用ASC表示升序。

  • 第5题:

    有以下SQL语句: SELECT订单号.签订日期,金额FROM订单,职员 WHERE订单.职员号=职员.职员号AND姓名=”王五” 与如上语句功能相同的SQL语句是( )。

    A. SELECT订单号,签订日期,金额FROM订单 WHERE EXISTS(SELECT*FROM职员WHERE姓名=”王五”)

    B. SELECT订单号,签订日期,金额FROM订单WHERE EXISTS(SELECT书FROM职员WHERE职员号=订单.职员号AND姓名=”王五”)

    C. SELECT订单号,签订日期,金额FROM订单 WHERE IN(SELECT职员号FROM职员WHERE姓名=”李二”)

    D. SELECT订单号,签订日期,金额FROM订单WHERE IN(SELECT职员号FROM职员WHERE职员号=订单.职员号AND姓名=”王五”)


    正确答案:B
    谓词EXISTS用来检验在子查询中是否有结果返回,本题中内层查询引用了外层查询的表,所以也是内外层互相关嵌套查询。故排除选项A、C、D的错误之处是在 WHERE和IN之间缺少“职工号”。

  • 第6题:

    有如下职员表和订单表:职员(职员号(C,3),姓名(C,6),性别(C,2),职务(C,10))订单(订单号(C,4),客户号(C,4),职员号(C,3),签订日期(D),金额(N,6,2))查询职工〝李丽〞签订的订单消息,正确的SQL.语句是( )。

    A.SELECT订单号,客户号,签订日期,金额FROM订单WHERE姓名=〝李丽〞

    B.SELECT订单号,客户号,签订日期,金额FROM职员,订单WHERE姓名=〝李丽〞; AND职员.职员号一订单.职员号

    C.SELECT订单号,客户号,签订日期,金额FROM职员JOIN订单; WHERE职员.职员号=订单.职员号AND姓名=〝李丽〞

    D.SELECT订单号,客户号,签订日期,金额FROM职员,订单ON职员.职员号=订单.职员号AND姓名=〝李丽〞


    正确答案:C
    SQL的基本格式为SELECT-FROM-WHERE,其中SELECT说明要查询的字段,FROM说明要查询的字段来自哪个表或哪些表,WHERE说明查询条件.本题查询“李丽”签订的订单信息,要查询字段包括订单号、客户号、签订日期和金额,WHERE后应该限定职员和订单表中的姓名为“李丽”,由于订单表中并没有姓名这一字段,因此用职员号字段将两表信息相连,AND表示“且”。故本题C为正确选项。

  • 第7题:

    有如下订单表:

    订单(订单号(C,4),客户号(C,4),职员号(C,3),签订日期(D.,金额(N,6,2))统计2012年各月份签订的订单的总金额,正确的SQL语句是( )。

    A.SELECT MONTH(签订日期)月份,SUM(金额)总金额FROM订单GROUP BY月份WHHRE YEAR(签订日期)=2012

    B.SELECT MONTH(签订日期)月份,SUM(金额)总金额FROM订单GROUP BY月份HAVING YEAR(签订日期)=2012

    C.SELECT签订日期.MONTH( )月份,SUM(金额)总金额FROM订单GROUP:BY月份WHERE 签订日期.YEAR( )=2012

    D.SELECT签订日期.MONTH( )月份,SUM(金额)总金额FROM订单GROUP BY月份HAⅥNG 签订日期.YEAR( )=2012


    正确答案:B
    本题考查分组与计算查询,SELECT说明要查询的字段,FROM说明要查询的字段来自哪个表或哪些表,WHERE说明查询条件,GROUPBY…HAVING用于按照签订日期进行分组。限定时间的语句应该为。YEAR(签订日期)-2012”,首先排除C、D选项。由于给GRoUPBY子句加条件必须使用HAVING,而不可以使用WHERE.因此可见本题B选项正确。

  • 第8题:

    设有“订货”表(订单号,客户号,金额,订购日期),使用SQL语句检索每个客户订货的“总金额”(注意要生成该字段名):SELECT客户号,__________FROM订货GROUP BY客户号


    正确答案:
    SUM(金额)AS总金额 (或sum(金额)总金额)
    【解析】检索每个客户订货的总金额时,须按“客户号”进行分组计算。再在每一组中进行计算,这里应该用SUM函数求总和,用AS短语指定新的字段名,该短语也可以省略。 

  • 第9题:

    单选题
    有订单表如下:订单(订单号(C,4),客户号(C,4),职员号(C,3),签订日期(D),金额(N,6,2))查询金额最高的订单的订单号(可能有多个),不正确的SQL语句是(  )。
    A

    SELECT订单号FROM订单WHERE金额>=ALL(SELECT金额FROM订单)

    B

    SELECT订单号FROM订单WHERE金额=(SELECT MAX(金额)FROM订单)

    C

    SELECT订单号FROM订单WHERE金额=MAX(金额)

    D

    SELECT订单号FROM订单WHERE金额>=(SELECT MAX(金额)FROM订单)


    正确答案: B
    解析:
    ALL()表示子查询中的所有的行都符合条件结果成立。MAX(最大值)计算指定列的最大值。C项错误,需要使用子查询(SELECT MAX(金额)FROM订单)来得到金额的最大值。

  • 第10题:

    单选题
    有如下订单表和客户表:订单(订单号(C,4),客户号(C,4),职员号(C,3),签订日期(D),金额(N,6,2))客户(客户号(C,4),客户名(C,36),地址(C,36),所在城市(C,10),联系电话(C,8))查询签订了订单号为“0036”的订单的客户信息,不正确的SQL语句是(  )。
    A

    SELECT客户.客户号,客户名FROM客户,订单WHERE客户.客户号=订单.客户号AND订单号=”0036”

    B

    SELECT客户.客户号,客户名FROM客户,订单ON客户.客户号=订单.客户号AND订单号=”0036”

    C

    SELECT客户.客户号,客户名FROM客户JOIN订单ON客户.客户号=订单.客户号AND订单号=”0036”

    D

    SELECT客户.客户号,客户名FROM客户JOIN订单ON客户.客户号=订单.客户号WHERE订单号=”0036”


    正确答案: C
    解析:
    多表连接查询格式为:SELECT…FROM<数据库表1>INNER|LEFT|RIGHT|FULL JOIN<数据库表2>ON连接条件WHERE其它条件。

  • 第11题:

    单选题
    查询金额在10000元以上的订单,正确的SQL语句是(  )。
    A


    SELECT订单号,单价*数量AS金额FROM商品JOIN订单项
    ON商品.商品号=订单项.商品号GROUP BY订单号HAVING金额>=10000

    B


    SELECT订单号,sum(单价*数量)AS金额FROM商品JOIN订单项
    ON商品.商品号=订单项.商品号GROUP BY订单号HAVING金额>=10000

    C


    SELECT订单号,单价*数量AS金额FROM商品JOIN订单项
    ON商品.商品号=订单项.商品号GROUP BY订单号WHERE金额>=10000

    D


    SELECT订单号,sum(单价*数量)AS金额FROM商品JOIN订单项
    ON商品.商品号=订单项.商品号GROUP BY订单号WHERE金额>=10000


    正确答案: D
    解析:
    分组利用GROUP BY子句,还可以用HAVING进一步限定分组的条件。本题要求查询金额在10000元以上的订单,而每张订单由不同的订单项组成,一张订单的金额和各个订单项金额的总和,因此需要用SUM()函数计算订单的金额。

  • 第12题:

    单选题
    有如下职员表和订单表:职员(职员号(C,3),姓名(C,6),性别(C,2),职务(C,10))订单(订单号(C,4),客户号(C,4),职员号(C,3),签订日期(D),金额(N,6,2))查询还没有签订任何订单的职员信息,不正确的SQL语句是(  )。
    A

    SELECT * FROM职员WHERE职员号 !=ALL(SELECT职员号FROM订单)

    B

    SELECT * FROM职员WHERE职员号 !=(SELECT职员号FROM订单)

    C

    SELECT * FROM职员WHERE职员号 NOT IN(SELECT职员号FROM订单)

    D

    SELECT * FROM职员WHERE NOT EXISTS(SELECT * FROM订单WHERE职员号=职员.职员号)


    正确答案: B
    解析:
    “!=”表示“不等于”;NOT IN表示“不在一组值的范围内”;EXISTS或NOT EXISTS是用来检查在子查询中是否有结果返回。本题查询没有签订任何订单的职员信息,所以以上短语均可用于查询。B项错误,语句格式不正确。

  • 第13题:

    设有订单表order(其中包含字段:订单号,客户号,职员号,签订日期,金额),查询2007年所签订单的信息,并按金额降序排序,正确的SQL命令是( )。

    A.SELECT * FROM order WHERE YEAR(签订日期)=2007 ORDER BY 金额 DESC

    B.SELECT * FROM order WHILE YEAR(签订日期)=2007 ORDER BY 金额 ASC

    C.SELECT * FROM order WHERE YEAR(签订日期)=2007 ORDER BY 金额 ASC

    D.SELECT * FROM order WHILE YEAR(签订日期)=2007 ORDER BY 金额 DESC


    正确答案:A
    解析:在SQL语句中用WHERE表示条件,而又需要按金额的降序进行排序所以用“金额DESC”表示。

  • 第14题:

    查询订单数在3个以上、订单的平均金额200元以上的职员号。正确的SQL语句是

    A.SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 AND AVG 金额>200

    B.SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 AND AVG (金额)>200

    C.SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 WHERE AVG (金额)>200

    D.SELECT 职员号 FROM 订单 GROUP BY 职员号 WHERE COUNT(*)>3 AND AVG金额>200


    正确答案:B
    解析:查询订单的平均金额 200元以上,用平均函数表示为AVG(金额)>200,故可排除选项A和选项D;订单数在三个以上和订单的平均金额200元以上两个条件要同时满足是逻辑“与”关系,故选项B正确。

  • 第15题:

    设有订单表order(其中包含字段:订单号,客户号,职员号,签订日期,金额),查询 2007年所签订单的信息,并按金额降序排序,正确的SQL命令是( )。

    A.SELECT*FROM order WHERE YEAR(签订日期)=2007 0RDER BY金额DESC

    B.SELECT*FROM order WHILE YEAR(签订日期)=2007 0RDER BY金额ASC

    C.SELECT*FROM order WHERE YEAR(签订日期)=2007 0RDER BY金额ASC

    D.SELECT*FROM order WHILE YEAR(签订日期)=2007 0RDER BY金额DESC


    正确答案:A
    A。【解析】在SQL语句中用WHERE表示条件,按金额的降序进行排序用DESC。

  • 第16题:

    根据下表,回答下列各题: 职员.DBF:职员号C(3),姓名C(6),性别C(2),组号N(1),职务C(10) 客户.DBF:客户号C(4),客户名C(36),地址C(36),所在城市C(36) 订单.DBF:订单号C(4),客户名C(4),职员号C(3),签订日期D,金额N(6.2) {TS}从订单表中查询金额大于10000元的订单号,正确的命令是( )。

    A. SELECT金额>10000 FROM订单FOR订单号

    B. SELECT订单号FROM订单FOR金额>10000

    C. SELECT金额>10000 FROM订单WHERE订单号

    D. SELECT订单号FROM订单WHERE金额>10000


    正确答案:D
    简单查询基于单个表,查询由SELECT和FROM短语(无条件查询)或SELECT、FROM和WHERE短语(条件查询)构成。其基本格式为:SELECT select—item FROM Database Name WHERE Filter Cndition。

  • 第17题:

    有以下SQL语句: SELECT 订单号,签订日期,金额 FROM 订单,职员 WHERE 订单.职员号=职员.职员号 AND 姓名="李二" 与如上语句功能相同的SQL语句是( )。

    A.SELECT 订单号,签订日期,金额 FROM 订单 WHERE EXISTS (SELECT*FROM 职员 WHERE 姓名="李二")

    B.SELECT 订单号,签订日期,金额 FROM 订单 WHERE EXISTS(SELECT*FROM 职员 WHERE 职员号=订单.职员号AND姓名="李二")

    C.SELECT 订单号,签订日期,金额 FRM 订单 WHERE IM (SELECT 职员号 FROM 职员 WHERE 姓名="李二")

    D.SELECT 订单号,签订日期,金额 ROM 订单 WHERE IN(SELECT 职员号FROM 职员 WHERE 职员号=订单.职员号 AND 姓名="李二")


    正确答案:B
    解析:题干中的 SQL 语句的功能是:查询那些姓名为“李二”的职员的订单号,签订日期和金额的信息。4个选项中只有选项B中的查询条件与此等价。

  • 第18题:

    有订单表如下:

    订单(订单号(C,4),客户号(C,4),职员号(C,3),签订日期(D.,金额(N,6,2))

    查询所有金额大于等于平均金额的订单的订单号,正确的SQL语句是( )。

    A.SELECT订单号FROM订单WHERE金额>=(SELECT AVG(金额)FROM订单)

    B.SELECT订单号FROM订单WHERE金额=(SELECT AVG(金额)FROM订单)

    C.SELECT订单号FROM订单WHERE金额>=ALL(SELECT AVG(金额)FROM订单)

    D.SELECT订单号FROM订单WHERE金额=ALL(SELECT AVG(金额)FROM订单)


    正确答案:A
    本题考查嵌套查询,首先被括号括起来的为内层查询,先进行内层查询,查询出订单表中的平均金额。然后再进行外层查询,筛选出金额大于等于平均金额的订单号。由于内层查询中使用了AVG(求平均数),因此不能使用ALL进行限定,故A选项正确。

  • 第19题:

    ( 20 ) 设有订单表 order ( 其中包含字段 : 订单号 , 客户号 , 职员号 , 签订日期 , 金额 ) , 查询 2007 年所签订单的信息,并按金额降序排序,正确的 SQL 命令是

    A) SELECT * FROM order WHERE YEAR( 签订日期 )=2007 ORDER BY 金额 DESC

    B) SELECT * FROM order WHILE YEAR( 签订日期 )=2007 ORDER BY 金额 ASC

    C) SELECT * FROM order WHERE YEAR( 签订日期 )=2007 ORDER BY 金额 ASC

    D) SELECT * FROM order WHILE YEAR( 签订日期 )=2007 ORDER BY 金额 DESC


    正确答案:A

  • 第20题:

    单选题
    假设“订单”表中有订单号、职员号、客户号和金额字段,正确的SQL语句只能是(  )。
    A

    SELECT职员号FROM订单
    GROUP BY职员号HAVING COUNT(*)>3 AND AVG_金额>200

    B

    SELECT职员号FROM订单
    GROUP BY职员号HAVING COUNT(*)>3 AND AVG(金额)>200

    C

    SELECT职员号FROM订单
    GROUP BY职员号HAVING COUNT(*)>3 WHERE AVG(金额)>200

    D

    SELECT职员号FROM订单
    GROUP BY职员号WHERE COUNT(*)>3 AND AVG_金额>200


    正确答案: B
    解析:
    分组查询的语句是GROUP BY GroupColumn HAVING FiherCondition。该子句一般跟在WHERE后面。同时,AVG是求平均值的函数,用法为AVG(Column)。

  • 第21题:

    单选题
    有订单表如下:订单(订单号(C,4),客户号(C,4),职员号(C,3),签订日期(D),金额(N,6,2))查询所有的订单,要求各订单按其签订时间的先后次序降序排序,正确的SQL语句是(  )。
    A

    SELECT * FROM订单ORDER BY签订日期

    B

    SELECT * FROM订单ORDER BY签订日期DESC

    C

    SELECT * FROM订单GROUP BY签订日期

    D

    SELECT * FROM订单GROUP BY签订日期DESC


    正确答案: B
    解析:
    ORDER BY短语可将查询结果按升序(ASC)或降序(DESC)排列,默认按升序排列。本题要求降序排序,所以应当使用“DESC”。GROUP BY子句用于分组查询;HAVING短语用于限定分组的条件;WHERE说明查询条件;

  • 第22题:

    单选题
    有订单表如下:订单(订单号(C,4),客户号(C,4),职员号(C,3),签订日期(D),金额(N,6,2))查询所有金额大于等于平均金额的订单的订单号,正确的SQL语句是(  )。
    A

    SELECT订单号FROM订单WHERE金额>=(SELECT AVG(金额)FROM订单)

    B

    SELECT订单号FROM订单WHERE金额=(SELECT AVG(金额)FROM订单)

    C

    SELECT订单号FROM订单WHERE金额>=ALL(SELECT AVG(金额)FROM订单)

    D

    SELECT订单号FROM订单WHERE金额=ALL(SELECT AVG(金额)FROM订单)


    正确答案: C
    解析:
    查询嵌套首先进行内层查询,其次是外层查询,即先查询出订单表中的平均金额,然后筛选出金额大于等于平均金额的订单号。CD两项错误,因为内层查询使用AVG不能使用ALL进行限定。

  • 第23题:

    单选题
    有如下订单表和客户表:订单(订单号(C,4),客户号(C,4),职员号(C,3),签订日期(D),金额(N,6,2))客户(客户号(C,4),客户名(C,36),地址(C,36),所在城市(C,10),联系电话(C,8))查询有订单金额大于等于10000的客户信息的正确SQL语句是(  )。
    A

    SELECT*FROM客户WHERE客户号=;
    SELECT客户号FROM订单WHERE金额>=10000)

    B

    SELECT*FROM客户WHERE客户号=;
    ALL(SELECT客户号FROM订单WHERE金额>=10000)

    C

    SELECT*FROM客户WHERE客户号=;
    ANY(SELECT客户号FROM订单WHERE金额>=10000)

    D

    SELECT*FROM客户WHERE客户号=;
    WHERE(SELECT客户号FROM订单WHERE金额>=10000)


    正确答案: C
    解析:
    C项正确,使用“ANY”时只要子查询中有一行能使结果为真,若客户有多个定单,那么当有一个订单的金额大于等于10000时,该客户号就能被查询出来;A项错误,内层查询结果为多值,“=”运算符只能与一个具体的值进行比较;B项错误,题中不会所有的客户的订单金额都大于等于10000,“ALL”当子查询中的所有行都使结果为真时结果才为真;D项错误,外层查询中使用两个WHERE,属于格式错误。