我刚得到以下实体员工、客户和公司。员工和客户与公司有一对多的关系,即一个员工可能被映射到许多公司,而客户也一样。我将如何为这种情况设计一个优化的表。我曾想过下面
员工:
ID
姓名
公司编号
但由于它是一对多的公司 ID,因此必须将其保存为逗号分隔的公司 ID。在这种情况下我该怎么办。
我刚得到以下实体员工、客户和公司。员工和客户与公司有一对多的关系,即一个员工可能被映射到许多公司,而客户也一样。我将如何为这种情况设计一个优化的表。我曾想过下面
ID
姓名
公司编号
但由于它是一对多的公司 ID,因此必须将其保存为逗号分隔的公司 ID。在这种情况下我该怎么办。
有人可以为我提供一些线索或解决方案来检索如下记录集吗?
注意:我阅读了 msdn 文档,但除了脱发之外别无他法:(
只是假设我有 2 个表通过 Rid 字段连接
表 1 列:
Rid, UserName, Hash
表 2 列:
Rid, Phone, City, Email
Table1
并Table2
通过Rid
列连接。
我想使用 xml auto 或 xml explicit 或您在 SQL Server 2005 Express 中获得的任何 xml 操作获得 xml 输出。
预期输出:
<UserDetails>
<Account>
<UserName>
</UserName>
<Hash>
</Hash>
</Account>
<Personal>
<Phone>
</Phone>
<City>
</City>
</Personal>
</UserDetails>
@matt 请查看我在下面创建的过程。当您在开始时使用代码执行存储过程时,您就会知道我面临的问题
stack_getusers '<Request Type="GetUsers" CRUD="R">
<UserDetails>
<Rid></Rid>
</UserDetails>
</Request>'
CREATE PROCEDURE [dbo].[stack_getusers]
@doc NTEXT
AS
DECLARE @idoc INT
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
SELECT
t1.UserName AS "Account/UserName",
t1.Hash AS "Account/Hash",
(
SELECT t2.Phone AS "Personal/Phone",
t2.City AS "Personal/City"
FROM table1 t2
INNER JOIN table2 t3 ON t2.rid = t3.rid WHERE t2.rid = t1.rid AND (xml.Rid = '' OR t1.rid = xml.Rid)
FOR XML PATH('Personals')
)
FROM table1 t1
INNER JOIN table2 t2 ON t1.rid = t2.rid
OPENXML (@idoc,'/Request/Users',2)
WITH (Rid int) as xml
where (xml.Rid = '' OR t1.rid = xml.Rid)
FOR XML PATH ('UserDetails');
EXEC sp_xml_removedocument @idoc
我需要安装具有全文搜索功能的 SQL server 2005 Express 版本。我不知道下载什么以及安装数据库管理系统的顺序。有人可以提供我下载带有全文搜索的版本的链接[因为默认的 38Mb 安装文件没有此功能]。
还分步说明在安装过程中启用全文搜索。
我正在尝试优化以下语句:
'VI'+CAST(month(GETDATE()) AS NVARCHAR)+'/'+CAST(year(GETDATE()) AS NVARCHAR)
+'/00000' +CAST(@number+1 AS VARCHAR)
该语句产生一个值,就像VI1/2011/000002
参数@number
是一样1
。
我想在删除冗余强制转换语句和提供一种连接字符串和整数的有效方法方面对此进行优化。
我想检索时间跨度之间的记录,我所拥有的只是这段指示时间跨度的字符串
9:00 AM - 10:00 AM
下面是表架构
CREATE TABLE [dbo].[Samples](
[RID] [int] IDENTITY(1,1) NOT NULL,
[PersonName[nvarchar](20) NOT NULL,
[NOT_AVL_DATE] [datetime] NULL,
[NOT_AVL_FOR] [int] NULL
)
简介: Rid 是主键,PersonName 是员工/员工/技术人员姓名,NOT_AVL_Date 是员工不可用的日期时间,NOT_AVL_FOR 代表员工不可用的时间跨度。1 - 全天请假 2- 前半天请假 3 - 后半天请假
要求: 给定时间跨度,我希望在该时间跨度内没有休假的员工。有人可以构建一个完整的声明吗,我的脑袋在想这个……谢谢你的帮助