Javascript SQL:我想用正确的名称替换建筑编号
我有一个兽医SQL server,我正在ASP.NET中使用SSMS构建一个存储过程。我有一个工作SQL查询,用于获取两个日期之间的所有临床病例:Javascript SQL:我想用正确的名称替换建筑编号,javascript,sql,asp.net,stored-procedures,Javascript,Sql,Asp.net,Stored Procedures,我有一个兽医SQL server,我正在ASP.NET中使用SSMS构建一个存储过程。我有一个工作SQL查询,用于获取两个日期之间的所有临床病例: USE [vetDatabase_Wizard] GO ALTER PROCEDURE sp_GetNewCases (@startDate datetime, @endDate datetime) AS BEGIN SELECT caseID,building FROM tblCases WHERE dateOpened BETW
USE [vetDatabase_Wizard]
GO
ALTER PROCEDURE sp_GetNewCases (@startDate datetime, @endDate datetime)
AS
BEGIN
SELECT caseID,building FROM tblCases
WHERE dateOpened BETWEEN @startDate and @endDate
END
GO
EXEC sp_GetNewCases '2015-01-01', '2015-08-30'
多亏了在线社区,它才起作用!:)
以下是输出:
caseID building
1 3
2 3
3 2
...
当我开始学习如何创建SQL数据库时,有人告诉我,用相应的数字存储建筑物名称是一种很好的做法,以节省存储空间。例如,tblBuildings:
buildingID name
1 GSC
2 RVH
3 MMD
...
我有7个建筑物的名字。我想修改上面的存储过程,以便将输出(JSON格式)与一些javascript数据可视化库一起使用:
caseID name
1 MMD
2 MMD
3 RVH
...
非常感谢你的帮助 首先,您应该将tblCases字段名
building
更改为building_id
,以便与其他表保持一致
然后将这两个表连接在一起,这样就可以返回building\u name
,如果不需要,可以从结果中删除building\u id
BEGIN
SELECT C.caseID, B.building_id, B.Name
FROM tblCases C
JOIN tblBuilding B
ON C.building_id = B.building_id
WHERE dateOpened BETWEEN @startDate and @endDate
END
你同时问了几个问题。您是在询问数据库设计、存储过程、json还是asp?尽量说得具体些,否则就太宽泛了,无法回答。请阅读,这里是一个学习如何提高问题质量和获得更好答案的好地方。嗨!非常感谢你的帮助!我学到了一些新东西D此外,我将谨慎地提出更好的问题。我不知道我们可以用字母(即B,C)以如此灵活的方式识别字段。我还想问你:我不需要写C.dateOpened,因为我们提到了“来自tblCases”,对吗?你应该写
C.dateOpened
,让你的代码对下一个家伙更具可读性。但你不必这么做。在building_uid
的情况下,您必须这样做,因为db不知道这两个中的哪个是您引用的,并且将是含糊不清的。这叫做Alias
,您也可以对表或字段名执行此操作。