我想用这个学校数据创建一个表?
Year Month Days Referrals
2012 1 16 10
2012 2 20 7
2012 3 15 11
Run Code Online (Sandbox Code Playgroud)
来自一个表“日历”的年、月和天数以及来自另一个表“推荐”的推荐计数。
我无法获得正确的 Days 信息,因为它只计算有推荐的天数。无论那天是否有转介,我都需要上学日的所有日子。
我的代码:
SELECT Datepart(YYYY, DATE_VALUE) "YEAR",
Datepart(MM, DATE_VALUE) "MONTH",
Count(DISTINCT( Datepart(DD, DATE_VALUE) )) "DAYS",
Count(R.DIS_KEY) "REFERRALS"
FROM CALENDAR C
LEFT OUTER JOIN REFERRALS R
ON C.CAL_KEY = R.CAL_KEY
WHERE C.SC_DAY = 'Y'
AND C.SC_KEY = @SCHKEY
AND C.DATE_VALUE BETWEEN @STDATE AND @ENDDATE
GROUP BY Datepart(MM, C.DATE_VALUE),
Datepart(YYYY, C.DATE_VALUE)
ORDER BY 1,
Datepart(MM, C.DATE_VALUE)
Run Code Online (Sandbox Code Playgroud)
我一直得到错误的 DAYS 计数。其他一切都很好。
我已经阅读了我能找到的关于这个问题的所有帖子。我没有任何WHERE对R表条件的除外ON …
我的表中有一个列,其中特定列中的所有值都为空。现在,当我按此列 ASC 和 DESC 排序时,我应该得到与我的假设相同的结果。但我得到了不同的结果。我无法理解这种奇怪行为背后的原因。如果我删除我在这个表上创建的聚集索引,它会给出预期的结果,但通过保留该索引它不会。索引与此列无关。
该列将来会有值,同时这种行为在排序时会令人困惑。
谁能告诉为什么会发生?以及如何摆脱这个?
当我在表中插入记录时,它会抛出:
将表达式转换为数据类型 int 时出现算术溢出错误。
代码:
create table JEmp
(
J_Id int Identity,
J_Name varchar(100),
J_Contact int,
J_City varchar(100),
primary key(J_Id)
)
insert into JEmp(J_Name, J_Contact, J_City)
values ('David Warner', 9821766418, 'New York')
Run Code Online (Sandbox Code Playgroud) SQL Server 表上的索引是否可以比表本身消耗更多的磁盘空间?
我已经阅读了几篇文章并研究了这个和一些专家推荐的表分区,例如,这个 MSDN 论坛问题
为什么和索引可以比实际数据更大?
如何减小索引大小?
在这种情况下如何识别不必要的索引?
我目前正在参与我们公司商业智能 (BI) 项目的规划阶段。
我们试图了解业务的许多方面,因此与项目的业务方面相比,项目的技术方面显得相对不重要。
这个项目应该由技术团队牵头,还是由业务团队牵头?
是让技术团队驱动需求更重要,还是业务驱动需求更重要?
作为一名 DBA,我应该期望在这种范围的项目中负责什么?