标签: t-sql

SQL Server/2在相同的存储过程中选择

这是我在单个SQL Server过程中尝试做的事情:

@ID1 int

select ID2 from TableA where ID1 = @ID1

(for each selected @ID2)
    select * from TableB where ID2 = @ID2
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

sql t-sql sql-server stored-procedures

0
推荐指数
1
解决办法
524
查看次数

使用UNION ALL和ORDER BY选择Top(某个数字)

我试图拉回加载到表中的某些记录的前五个实例.重要的是要注意我试图从同一个表中得到我的结果,我认为有一个问题,我无法弄清楚这是一个表的事实.以下是我的查询示例:

Select * From (
Select Top 5 JobID From Jobs Where JobTypeID = 1 Order By JobID DESC
UNION ALL
Select Top 5 JobID From Jobs Where JobTypeID = 2 Order By JobID DESC
UNION ALL
Select Top 5 JobID From Jobs Where JobTypeID = 3 Order By JobID DESC
UNION ALL
Select Top 5 JobID From Jobs Where JobTypeID = 4 Order By JobID DESC
UNION ALL
Select Top 5 JobID From Jobs Where JobTypeID = 5 Order …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2005

0
推荐指数
1
解决办法
3480
查看次数

如何为每一行选择评论

我有events表,其中包括除了这么多的cols IdPK
和表格Comments,其中包括text,eventIdIdPK.
如何在一个单独的sql语句中选择事件信息及其注释,如何使用它以及它应该是什么样子的?

请注意,EventId(评论)= Id(事件)

c# sql t-sql sql-server-2005

0
推荐指数
1
解决办法
117
查看次数

为每条记录调用存储过程

我有sql存储过程传递并返回一些值:

CREATE PROCEDURE [dbo].[GetMoney]
   @userId int,  
   @month DateTime
AS
BEGIN
  ....
  Select @something
END
Run Code Online (Sandbox Code Playgroud)

我想为users表中的每个用户调用GetMoney过程,并在sql查询中使用结果.我该怎么做?

sql t-sql

0
推荐指数
1
解决办法
317
查看次数

T-SQL中的If-Else语句

我正在尝试更改当前显示的Transact-SQL(MS SQL Server)报告的结果:

CompanyA     DVCE3
CompanyB     DVCE2
CompanyC     DVCE3
CompanyD     NULL 
CompanyE     DVCE3
Run Code Online (Sandbox Code Playgroud)

而我希望它显示:

CompanyA     36
CompanyB     24
CompanyC     36
CompanyD      
CompanyE     36
Run Code Online (Sandbox Code Playgroud)

我确定这个问题的答案是使用某种if/else语句或case语句,但我不确定T-SQL中的语法或它应该放在我的查询中.

我的基本查询如下所示:

SELECT
   companyName
   , term
FROM tableA a
   JOIN tableB b on a.id = b.id ...
WHERE 
   customerNumber IS NOT NULL
   AND companyName != 'TEST'... ;
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

sql t-sql sql-server syntax

0
推荐指数
1
解决办法
762
查看次数

SQL Server设计中是否必须使用"主键"?

观察下表模型:

CREATE TABLE [site].[Permissions] (
    [ID]     INT REFERENCES [site].[Accounts]( [ID] ) NOT NULL,
    [Type]   SMALLINT NOT NULL, 
    [Value]  INT NULL
);
Run Code Online (Sandbox Code Playgroud)

site.Accounts-> site.Permissions是一对多关系,因此由于PK强加的唯一性,'ID'不能成为主键.

使用WHERE [ID] = ?子句选择行,因此添加一个虚假的IDENTITY列并使其成为PK会产生额外的磁盘空间.

据我所知,目标平台 - SQL Server(2008) - 不支持复合PK.这些都加起来我的问题:如果没有使用主键,那么有什么不对吗?或者可能更正确的事情?

t-sql sql-server database-design

0
推荐指数
1
解决办法
172
查看次数

我需要一个SQL语句,它返回具有特定值的表中的行数

我敢肯定,这将等同于COUNT语句的使用,但我不擅长SQL.

这是我的SQL表.

团队表:

TeamId     TeamName           RosterSpots 
----------------------------------------------- 
1          Miami Heat         12 
2          New York Knicks    10 
Run Code Online (Sandbox Code Playgroud)

球员表:

PlayerId   PlayerName         TeamId 
------------------------------------ 
1          Dwyane Wade        1 
2          Chris Bosh         1 
3          LeBron James       1 
4          Amar'e Stoudemire  2 
Run Code Online (Sandbox Code Playgroud)

什么是SQL(Miscroft SQL Server 2008)将返回每个团队的玩家数量?

产量

Team Name         PlayerCount
-----------------------------
Miami Heat        3
New York Knicks   1
Run Code Online (Sandbox Code Playgroud)

我还想返回RosterSpots和Team Id,但实际上只是上面的COUNT部分是我所困惑的.

sql t-sql sql-server count sql-server-2008

0
推荐指数
1
解决办法
157
查看次数

计算SQL中的数据组

我有一个大约1.6M行的表,其中记录具有唯一(标识)ID,然后还有一个8个字符的"代码"字段.它用于将数据分组的代码字段...具有相同代码的所有行都在同一个集合中.每个集合应包含12个记录,但似乎我们的数据加载已关闭且某些集合不完整.

我需要识别不完整的集合.我如何编写查询以仅选择那些在集合中没有正确数量的记录的集合中的那些记录(12)?

我正在使用MS SQL 2008.

谢谢.

sql t-sql sql-server aggregate-functions sql-server-2008

0
推荐指数
1
解决办法
1518
查看次数

T-SQL关于内部联接表变量的问题

在我的存储过程中,我有一个表变量包含行ID.有两种情况 - 表变量是空的而不是.

declare @IDTable as table
(
  number NUMERIC(18,0)
)
Run Code Online (Sandbox Code Playgroud)

在主查询中,我加入了该表:

inner join @IDTable tab on (tab.number = csr.id)
Run Code Online (Sandbox Code Playgroud)

但:

因为我们知道内连接如何工作,我需要我的查询返回一些行:

当@IDTable为空时

要么

返回@IDTable中存在的行

我也试过LEFT加入,但它不起作用.任何想法如何解决?

t-sql

0
推荐指数
1
解决办法
1003
查看次数

从存储过程返回值

我有一个这样的存储过程:

Select @totalMoney*@bonusPercent/100 
Run Code Online (Sandbox Code Playgroud)

我如何从程序返回值并将其分配给变量?我的意思是:

SET @myVarible = EXEC MyStoredProcedure @param1, @param1;
Run Code Online (Sandbox Code Playgroud)

sql t-sql stored-procedures

0
推荐指数
1
解决办法
1358
查看次数