好有难度的一个mssql语句,请高手帮忙

yangnl1982 2008-05-06 11:05:06
问题复杂,若没说明白还请见谅!
是这样的,话说我的网站电影大数据库有两个表,
一个Movie 表的结构如下,
id siteid name
123 820 张三
124 821 李四
125 822 王五
126 823 张三

这里看到同样是名字叫张三的分别由两个siteid为820、823的站存在
问题在于我查询出来的“张三”结果的排序需要按照另一个表 log 的 rate_pc来排列的
log 表结构如下:
id siteid logdate logyear logmonth logday rate_pc
24237 822 2008-03-17 13:04:38.34 2008 3 17 3
24238 820 2008-03-18 11:18:26.71 2008 5 18 3
24239 823 2008-03-19 10:18:10.67 2008 5 19 2
24240 820 2008-03-28 11:30:53.72 2008 5 28 4
24241 821 2008-05-04 19:03:09 2008 5 4 2
paixu中的值是每天按照一定的外部原因才输入的,就是说可能某一个siteid某一天没有数值
我需要的是,查询张三出来的结果按照logyear logmonth logday 匹配出的当天的rate_pc进行排序,如果查询的siteid没有当天的数据则排名的时候就按照时间顺序排在后边,有rate_pc数据的在前边。

我自己写了一个语句:
select top 100 movie.* from Movie,log where movie.name like '%张三%' and movie.siteid=log.siteid and log.logyear ="+DateTime.Now.Year+" and log.logMonth ="+DateTime.Now.Month+" and log.logDay ="+DateTime.Now.Day+" Order by movie.Power_PC Desc,log.rate_pc Desc
但这样的话如果没有当天的数据就查询不出内容来了,我的水平太有限了,请高手赐教啊。
...全文
86 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fuanwei 2008-05-06
  • 打赏
  • 举报
回复
select  movie.* from Movie 
left join log on movie.siteid=log.siteid and log.logyear ="+DateTime.Now.Year+" and
log.logMonth ="+DateTime.Now.Month+" and log.logDay ="+DateTime.Now.Day+"
where movie.name like '%张三%'
Order by (case when log.rate_pc is null then 1 else 0 end), movie.Power_PC , log.rate_pc Desc
Limpire 2008-05-06
  • 打赏
  • 举报
回复
(case when log.rate_pc is null then 1 else 0 end)
Limpire 2008-05-06
  • 打赏
  • 举报
回复
select top 100 movie.* from Movie left join log on movie.siteid=log.siteid and log.logyear ="+DateTime.Now.Year+" and log.logMonth ="+DateTime.Now.Month+" and log.logDay ="+DateTime.Now.Day+" where movie.name like '%张三%' Order by (case when b.rate_pc is null then 1 else 0 end), movie.Power_PC Desc, log.rate_pc Desc
正宗老冉 2008-05-06
  • 打赏
  • 举报
回复
字太小,老夫眼力不好。先粘到WORD里排个版再看。

初步建议:不要直接那样组合SQL语句,搞成参数。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧