首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

又栽在sql上面了,小弟我只能说tmd,真tmd的,太气人了。

2013-11-08 
又栽在sql上面了,我只能说tmd,真tmd的,太气人了。。气自己。。。冲冲忙忙赶过去面试,过去填张信息表,接着就是两

又栽在sql上面了,我只能说tmd,真tmd的,太气人了。。
气自己。。。

冲冲忙忙赶过去面试,过去填张信息表,接着就是两套sql面试题,任选一套。。。

面试题如下:

——————————————————————————————————————
题目一:
学生表 stu
stuid     stuname

科目表K
kid        kname

成绩表C
cid     stuid    kid    score


求显示效果:如下?

姓名   语文    数学    英语    化学
张三    90       80     79      87
李四    89       87     56      45
王五    97       78     78      85
赵六    50       78     98      79
注:没参加科目分数对应显示为 NULL


题目二:
商品表  pro
proid   pname
1        帽子
2        上衣
3        裤子
4        鞋子
... ...

具体商品表  JT,字段如下
JTid    jtName    parent    clicknum
1        女士帽子   1         903
2         男士帽子  1         892
3         儿童帽子  1          981
4        女士上衣   2         349
5         男士上衣  2          980
6         女士裤子  3          87
7         女士鞋子  4          887
... ...
分别为id,具体商品名称,输入那个商品种类,点击次数

求每个商品种类下面点击率最高的"具体商品种类"名称,具体商品id,点击次数,以及所属商品id?


[解决办法]



DECLARE @_pro TABLE (proid INT, pname NVARCHAR(20))
DECLARE @_JT TABLE (JTid INT, jtName NVARCHAR(20), parent INT, clicknum INT)
INSERT INTO @_pro
SELECT 1, '帽子' UNION ALL
SELECT 2, '上衣' UNION ALL
SELECT 3, '裤子' UNION ALL
SELECT 4, '鞋子'
INSERT INTO @_JT
SELECT1, '女士帽子', 1, 903 UNION ALL
SELECT2, '男士帽子', 1, 892  UNION ALL
SELECT3, '儿童帽子', 1, 981  UNION ALL
SELECT4, '女士上衣', 2, 349 UNION ALL
SELECT5, '男士上衣', 2, 980  UNION ALL
SELECT6, '女士裤子', 3, 87  UNION ALL
SELECT7, '女士鞋子', 4, 887
--1.
SELECT pname,JTid,jtName,clicknum FROM   @_pro p CROSS APPLY 
(
SELECT TOP (1) *
FROM @_JT 
WHERE p.proid=parent
ORDER BY clicknum DESC
) t

/*
pname                JTid        jtName               clicknum
-------------------- ----------- -------------------- -----------
帽子                   3           儿童帽子                 981
上衣                   5           男士上衣                 980
裤子                   6           女士裤子                 87
鞋子                   7           女士鞋子                 887

(4 行受影响)
*/
--2
SELECT pname,JTid,jtName,clicknum FROM 
(
SELECT n=ROW_NUMBER() OVER(PARTITION BY parent ORDER BY clicknum DESC ),* 
FROM  @_JT j JOIN @_pro p ON j.parent=p.proid
) t
WHERE t.n=1


[解决办法]
加油吧!!
SQL code1234567891011121314151617181920212223242526272829303132333435363738394041424344 DECLARE @_pro TABLE (proid INT, pname NVARCHAR(20)) DECLARE @_JT TABLE (JTid INT, jtName NVARCHAR(20), parent INT, clicknum INT) INSERT INTO @_pro SELECT 1, '帽子' UNION ALLSELECT 2, '上衣' UNION ALLSELECT 3, '裤子' UNION ALLSELECT 4, '鞋子'INSERT INTO @_JT SELECT  1, '女士帽子', 1, 903 UNION ALLSELECT  2, '男士帽子', 1, 892  UNION ALLSELECT  3, '儿童帽子', 1, 981  UNION ALLSELECT  4, '女士上衣', 2, 349 UNION ALLSELECT  5, '男士上衣', 2, 980  UNION ALLSELECT  6, '女士裤子', 3, 87  UNION ALLSELECT  7, '女士鞋子', 4, 887 --1. SELECT pname,JTid,jtName,clicknum FROM   @_pro p CROSS APPLY  (     SELECT TOP (1) *     FROM @_JT      WHERE p.proid=parent     ORDER BY clicknum DESC) t   /* pname                JTid        jtName               clicknum -------------------- ----------- -------------------- ----------- 帽子                   3           儿童帽子                 981 上衣                   5           男士上衣                 980 裤子                   6           女士裤子                 87 鞋子                   7           女士鞋子                 887   (4 行受影响) */ --2 SELECT pname,JTid,jtName,clicknum FROM (     SELECT n=ROW_NUMBER() OVER(PARTITION BY parent ORDER BY clicknum DESC ),*      FROM  @_JT j JOIN @_pro p ON j.parent=p.proid ) t WHERE t.n=1  



[解决办法]
第一题如下:
又栽在sql上面了,小弟我只能说tmd,真tmd的,太气人了。

第二题如下:
又栽在sql上面了,小弟我只能说tmd,真tmd的,太气人了。

热点排行