我必须使用带有EF的View,但是当我导入它时,视图的主键显示不正确,由于某种原因我无法更改它.
这个问题之前已经问过几次,不幸的是我没有得到我的问题的答案.
我有两个SQL(SQL SERVER 2008)表,Employee和Employee费用,其中Employee Id分别是主键和外键.
员工表列,1.员工ID(P键)2.经理3.位置4.加入日期5.名称
员工费用表列,1.费用ID(P键)2.员工ID(F键)3.费用类型4.费用金额5.费用日期.
问题是,我想创建一个在SharePoint Web部件中使用的视图,我将在其中查询这两个表,所以我的要求是使用以下列创建视图,
从员工我需要员工ID和姓名.从员工费用我需要费用类型,费用金额,费用日期.
其他要求.
一个.如果我在Employee Expense表中有一个员工的多个条目,那么View中应该有很多行
湾 即使我在Employee Expense表中没有条目,那么我也应该在视图中获取该特定Employee的行,而Employee Expense表列为null.
请帮我继续......
编辑在Stack Overflow成员指示时添加所需的视图代码!!
CREATE VIEW ExpenseView AS (
SELECT [Employee Expense].[Employee ID], Employee.[First Name], [Employee Expense].[Expense Type],[Employee Expense].[Expense Amount],[Employee Expense].[Expense Date]
FROM Employee,[Employee Expense]
WHERE [Employee Expense].[Employee ID] = Employee.[Employee ID])
Run Code Online (Sandbox Code Playgroud)
请帮忙.
由于某些部署限制,我无法在我的项目中使用同义词,因此我创建了以下视图:
CREATE VIEW [dbo].[User] AS SELECT * FROM [PersonalData].[dbo].[User]
GO
Run Code Online (Sandbox Code Playgroud)
它工作正常,但现在我需要按如下方式修改它:
ALTER VIEW [dbo].[User] AS
SELECT [Id],
t.[Name] AS [Title],
[FirstName],
[LastName],
[JobTitle],
[Department],
[EmailAddress],
[PhoneNumber],
[PhoneExtension],
[MobilePhoneNumber],
[CreatedDate],
[ModifiedDate],
[Uid],
[Active]
FROM [PersonalData].[dbo].[User] AS u
LEFT OUTER JOIN [PersonalData].[dbo].[Titles] AS t ON u.TitleId = t.Id
GO
Run Code Online (Sandbox Code Playgroud)
目前,它失败了:
Ambiguous column name 'Id'
Run Code Online (Sandbox Code Playgroud)
在LEFT OUTER JOIN行。
但是,Microsoft SQL Management Studio 突出显示[PersonalData].[dbo].[Titles]错误:
Invalid object name '[PersonalData].[dbo].[Titles]
Run Code Online (Sandbox Code Playgroud)
事实上,它没有为我提供该表列的智能感知。
桌子[PersonalData].[dbo].[Titles]在那里。事实上,以下查询返回的结果没有错误:
select * from [PersonalData].[dbo].[Titles]
Run Code Online (Sandbox Code Playgroud)
我对 SQL 的了解不够深入,但我不明白为什么会这样,为什么它找到Users …
我使用 SQL Server 2012,我有一个大表,我将表划分为一些表,如下所示:
Create Table A2013
(
Id int identity(1,1),
CountA int ,
Name varchar(50),
ADate DATETIME NULL
CHECK (DATEPART(yy, ADate) = 2013)
)
Create Table A2014
(
Id int identity(1,1),
CountA int ,
Name varchar(50),
ADate DATETIME NULL
CHECK (DATEPART(yy, ADate) = 2014)
)
Insert Into A2013 Values ( 102 , 'A','20131011' )
Insert Into A2013 Values (15 , 'B' ,'20130211' )
Insert Into A2013 Values ( 54, 'C' ,'20131211' )
Insert Into A2013 Values ( 54, 'D' …Run Code Online (Sandbox Code Playgroud) 我有一个名为 的 mysql 视图records_latest。我可以使用什么查询来检查该视图是否已存在于 mysql 数据库中?
我在启动期间在脚本中创建此视图。我不想多次创建它。所以,我需要检查视图是否存在。
我用 sql 语句在 postgres sql 中创建一个视图
CREATE OR REPLACE VIEW {ViewName} as
Select
.....
Run Code Online (Sandbox Code Playgroud)
我问有什么方法可以为视图中的列创建注释。创建视图后,在向列中添加注释时会生成错误:
错误:“{ViewName}”不是表、复合类型或外部表。
任务:出于仪表板的目的,我有一个复杂的选择查询,其中包含大量联接和子查询,它们从多个表中获取数据。
选项 1:我可以使用该查询创建一个视图SELECT,Spotfire 可以使用该视图作为其仪表板的数据源。
选项 2:我可以使用该SELECT查询作为源来创建 SSIS 包,并且可以每天一次将数据加载到单个表中。Spotfire 可以使用该单个表作为其仪表板的源。
注意:我不想要实时的。仪表板可以每晚更新(每天一次)。
我的理解:我知道视图基本上是一个存储的SELECT查询。如果我创建一个视图,每次用户访问仪表板时,它都会尝试访问该视图。这意味着,在后端视图将命中数据库中的基础表。相反,我可以简单地让 SSIS 每天加载一次特定的表。这样,达世币将接触该表,而不是实际的高度交易性表。
您能给我建议一个选项并附上解释吗?
对于你们中的一些人来说,这可能是一个非常基本的问题,但请耐心等待这个新手学习 SQL 服务器。
我需要创建一个视图,我试图在其中连接两个表中的多个列。唯一的问题是,其中一列的值具有额外的字符,需要使用 RIGHT 函数或 SUBSTRING 将其删除,以便能够匹配另一个表中的相应列。
这是我写的内容,但我需要帮助了解我在 SerialNo 列中做错了什么:
SELECT a.ID,
a.SerialNo,
a.Price,
a.ItemName,
b.ID, b.SNumber,
b.ItemDesc
FROM Table1 a LEFT JOIN
Table2 b ON a.ID = b.ID AND
a.Price = b.Price AND
a.SerialNo = (SELECT RIGHT(b.SNumber, 6) AS b.SNumber from Table2)
Run Code Online (Sandbox Code Playgroud) 我正在尝试从 SQL Server 2017 中的表中解析 JSON 数据。我有一个返回此数据的视图:
| Debrief Name | Version | Answer Question | Answer Options |
+-------------------+-----------+--------------------------+--------------------------------------------------------------------------------------------------------------------------+
| Observer Report | 7 | Division: | {"Options":[{"Display":"Domestic","Value":"Domestic"},{"Display":"International","Value":"International"}]} |
| Observer Report | 7 | Are you on reserve? | {"Options":[{"Display":"Yes - Long Call Line","Value":"Yes"},{"Display":"No","Value":"No"}]} |
| Observer Report | 11 | Crew Position: | {"Options":[{"Display":"CA","Value":"CA"},{"Display":"RC","Value":"RC"},{"Display":"FO","Value":"FO"}]} |
| Observer Report | 11 | Domicile: | {"VisibleLines":2,"Options":[{"Display":"BOS","Value":"BOS"},{"Display":"CLT","Value":"CLT"}]} |
| Training Debrief | 12 | TRAINING CREW POSITION | {"VisibleLines":2,"Options":[{"Display":"CA","Value":"CA"},{"Display":"FO","Value":"FO"}]} | …Run Code Online (Sandbox Code Playgroud) 我的数据库中有一个名为“dbo.Viewtest”的 SQL 视图。此视图组合了其他 2 个具有相同列类型的表的数据。该视图还添加了一列以显示数据源自哪个表。
这是 SQL Server 对象资源管理器中 SQL 视图的样子:
身份证 | 类型 | 内容 | 地点
1 | H1 | 欢迎!| 家
2 | p | 登录 | 家
3 | h2 | 指南 | 家
1 | H1 | 信息 | 活动
2 | p | 关注 | 活动
该视图由 2 个表创建,其中一个称为“HomeContent”,另一个称为“EventsContent”(因此是位置列)。使用以下代码创建了视图:
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql("CREATE VIEW ViewTest AS " +
"SELECT Id, Type, Content, 'Home' location FROM HomeContent UNION ALL " + …Run Code Online (Sandbox Code Playgroud) sql-view ×10
sql ×7
sql-server ×6
.net ×1
c# ×1
database ×1
ef-core-2.1 ×1
json ×1
left-join ×1
mysql ×1
postgresql ×1
primary-key ×1
t-sql ×1