这是我在单个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)
有任何想法吗?
我试图拉回加载到表中的某些记录的前五个实例.重要的是要注意我试图从同一个表中得到我的结果,我认为有一个问题,我无法弄清楚这是一个表的事实.以下是我的查询示例:
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) 我有events表,其中包括除了这么多的cols IdPK
和表格Comments,其中包括text,eventId和IdPK.
如何在一个单独的sql语句中选择事件信息及其注释,如何使用它以及它应该是什么样子的?
请注意,EventId(评论)= Id(事件)
我有sql存储过程传递并返回一些值:
CREATE PROCEDURE [dbo].[GetMoney]
@userId int,
@month DateTime
AS
BEGIN
....
Select @something
END
Run Code Online (Sandbox Code Playgroud)
我想为users表中的每个用户调用GetMoney过程,并在sql查询中使用结果.我该怎么做?
我正在尝试更改当前显示的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)
谢谢你的帮助.
观察下表模型:
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.这些都加起来我的问题:如果没有使用主键,那么有什么不对吗?或者可能更正确的事情?
我敢肯定,这将等同于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部分是我所困惑的.
我有一个大约1.6M行的表,其中记录具有唯一(标识)ID,然后还有一个8个字符的"代码"字段.它用于将数据分组的代码字段...具有相同代码的所有行都在同一个集合中.每个集合应包含12个记录,但似乎我们的数据加载已关闭且某些集合不完整.
我需要识别不完整的集合.我如何编写查询以仅选择那些在集合中没有正确数量的记录的集合中的那些记录(12)?
我正在使用MS SQL 2008.
谢谢.
在我的存储过程中,我有一个表变量包含行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加入,但它不起作用.任何想法如何解决?
我有一个这样的存储过程:
Select @totalMoney*@bonusPercent/100
Run Code Online (Sandbox Code Playgroud)
我如何从程序返回值并将其分配给变量?我的意思是:
SET @myVarible = EXEC MyStoredProcedure @param1, @param1;
Run Code Online (Sandbox Code Playgroud)