小编rus*_*sds的帖子

sql为每一行添加额外的行

是否可以根据字段值向选定集添加其他行?

我有这个问题:

WITH CTEDivisions AS
(
    SELECT ....
)

SELECT 
    cnt,
    Division
FROM CTEDivisions
Run Code Online (Sandbox Code Playgroud)

哪个回报:

  cnt         Division
  1           Sales
  2           Marketing
  1           Business
  2           IT
  etc...
Run Code Online (Sandbox Code Playgroud)

我需要的是一个声明,返回3个额外的行cnt = 2,如:

 Division     NewDivision
 Sales        Sales
 Marketing    Marketing - X
 Marketing    Marketing - Y
 Marketing    Marketing - Z
 Business     Business
 IT           IT - X
 IT           IT - Y
 IT           IT - Z
 etc...
Run Code Online (Sandbox Code Playgroud)

我已经搜索了这样做的方法,并找到了一些使用cursorWHILE循环的可能解决方案,但这些似乎与CTE语句一起使用.

sql t-sql sql-server sql-server-2012

6
推荐指数
2
解决办法
254
查看次数

在mvc中的下拉列表中使用外键

我是MVC的新手,并坚持应该是一个非常直接的问题.我正在完成这个教程并得到了一切非常有用的工作,除了我现在想要添加一个外键'链接'(不确定它叫什么)但似乎无法让它工作.这就是我所拥有的:

表:

 Inventory:
 Id   |  SerialNumber  | ManufacturerId (foreignkey to Manufactueres->id)

 Manufactureres
 Id (primary key)   |  Name
Run Code Online (Sandbox Code Playgroud)

模型(InventoryItem.cs):

 public class InventoryItem {
     public int Id {get; set; }
     public int SerialNumber{ get; set; }

     //this starts the trouble, I actually want to interact with the Manufactureres table -> Name column
     public int ManufacturerId { get; set; }  
 }
Run Code Online (Sandbox Code Playgroud)

查看(Create.cshtml):

 ...
 //What i really want is a dropdown of the values in the Manufactureres table
 @Html.EditorFor(model=> model.ManufacturerId)
Run Code Online (Sandbox Code Playgroud)

当使用关系数据库时,这必然是一个常见的问题,将会有许多外键关系被使用/显示,但由于某种原因,我无法在stackoverflow上找到直接对应于如此简单的东西的教程或问题.非常感谢任何指导或方向!谢谢,

foreign-key-relationship asp.net-mvc-3

4
推荐指数
1
解决办法
1万
查看次数

创建日期列表,相隔一个月,从当前日期开始

我正在寻找一个简单的选择查询(不使用表格)来返回一个相隔1个月的日期列表.输出应该是这样的东西,(假设GetDate()='2011-07-05 11:59:000',我想在NOW()和NOW()+ 4个月之间

Date
2011-07-05 11:59:000
2011-08-05 11:59:000
2011-09-05 11:59:000
2011-10-05 11:59:000
2011-11-05 11:59:000
Run Code Online (Sandbox Code Playgroud)

杀死我的部分是计算明年,例如,如果我在11月运行此查询,则应将这些月份列为11,12,1,2.谢谢!

sql t-sql sql-server

3
推荐指数
1
解决办法
8209
查看次数

skip/ignore /不插入重复的行

这就是我想要的:将行从tableA复制到tableB,但不是已经存在于tableB中的任何行.没有PK或识别,我只想检查每个字段,如果匹配的行包含所有相同的字段,则不插入.我试过INSERT和MERGE:

 --try with INSERT
 INSERT TableB(col1,col2,col3,col4,col5,col6, etc.)
 SELECT (col1,col2,col3,col4,col5,col6, etc.)  
 FROM tableA as src
 WHERE NOT EXISTS (SELECT 1 FROM TableB as T
            WHERE               
            T.col1 = src.col1 AND
            T.col2 = src.col2 AND
            T.col3 = src.col3 AND
            T.col4 = src.col4 AND
            T.col5 = src.col5 AND
            T.col6 = src.col6, etc.)
Run Code Online (Sandbox Code Playgroud)

我也尝试过MERGE:

  MERGE INTO tableA src
  USING tableB T
  ON (
            T.col1 = src.col1 AND
            T.col2 = src.col2 AND
            T.col3 = src.col3 AND
            T.col4 = src.col4 AND
            T.col5 = src.col5 AND
            T.col6 = …
Run Code Online (Sandbox Code Playgroud)

sql merge insert sql-server-2008

3
推荐指数
1
解决办法
5688
查看次数

诊断与 SQL Server 的连接

我正在尝试创建到 SQL Server 的 ODBC 连接,但是当我这样做时,出现错误:

Connection failed:
SQLState: '01000'
SQL Server Error: 10060
[Microsoft][ODBC_SQL Server Driver][TCP/IP Sockets] COnnectionOpen (Connect()).
Connection failed:
SQLState: '08001'
SQL Server Error: 17
[Microsoft][ODBC_SQL Server Driver][TCP/IP Sockets] SQL Server does not exist or access denied.
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

  1. 不是防火墙问题:尝试关闭 SQL Server 上的防火墙,并关闭客户端。也能够从客户端 telnet 1433 并且工作正常。
  2. 不是访问问题:我可以从许多不同的计算机登录,包括使用我在客户端上使用的帐户(使用 SQL Server 身份验证)的 SQL Server 本身
  3. 我可以 ping 主机名和 IP 地址。(我都试过)

我唯一能想到的是客户端计算机是 windows server 2003,并且具有各种角色设置:

  • 文件服务器
  • 应用服务器
  • 终端服务器
  • 域控制器
  • DNS服务器

我不知道为什么要设置这些服务,但目前我无法关闭它们。是否是其中任何一个,如果是,是否有办法禁用它们的任何方面,这可能会阻塞 SQL。

任何建议真的很感激!

sql-server connection odbc

1
推荐指数
1
解决办法
6万
查看次数