我正在尝试生成一个包含SQL Server 2008中的时间数据类型的大型数据集.我已经在表中有一些非时间数据,所以我想将整个过程保留在T-SQL中并使用insert-into-选择从一个表中获取部分数据并将其与包含时间的一些生成数据一起插入到下一个表中.
我想要一种在两点之间产生随机时间(7)的方法,比如在8:00到9:00之间的随机时间.我发现了一些2008年之前的帖子,但没有解决SQL Server 2008的时间类型问题.
考虑以下内容:
CREATE TABLE Members (MemberID INT)
INSERT Members VALUES (1001)
CREATE TABLE PCPs (PCPID INT)
INSERT PCPs VALUES (231)
INSERT PCPs VALUES (327)
INSERT PCPs VALUES (390)
CREATE TABLE Plans (PlanID INT)
INSERT Plans VALUES (555)
INSERT Plans VALUES (762)
CREATE TABLE MemberPCP (
MemberID INT
, PCP INT
, StartDate DATETIME
, EndDate DATETIME)
INSERT MemberPCP VALUES (1001, 231, '2002-01-01', '2002-06-30')
INSERT MemberPCP VALUES (1001, 327, '2002-07-01', '2003-05-31')
INSERT MemberPCP VALUES (1001, 390, '2003-06-01', '2003-12-31')
CREATE TABLE MemberPlans ( …Run Code Online (Sandbox Code Playgroud) 我有一个数据表,我想通过存储过程选择出来,这样用户可以将MS excel前端连接到它并使用原始数据作为图形来源.
表的原始数据的问题是日期中存在间隙,因为如果给定日期没有数据(没有该日期的记录),那么当用户尝试绘制它时会产生问题.
我想要将我的存储过程更新到左外连接到临时表的日期,以便右侧将作为空值进入,我可以转换为零,以便他们具有简单的绘图体验.
如何在开始日期和结束日期之间最好地生成一个日期字段表?
运行SQL Server Express 2008.我为某些实用程序功能创建了"数字表".由于表填充是自动构建的一部分,因此每次部署时都会花费过多的时间.
冒着"过度优化"的风险,有人可以评论我如何能够尽快实现这一目标吗?也许玩索引填充因子或创建PK时?
IF EXISTS (SELECT * FROM dbo.sysobjects
WHERE id = OBJECT_ID(N'Numbers') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
BEGIN
drop TABLE [Numbers]
end
CREATE TABLE [Numbers]
(
[Number] [int]
, CONSTRAINT [Index_Numbers] PRIMARY KEY CLUSTERED
(
[number] ASC
) ON [PRIMARY]
)
ON [PRIMARY]
Declare @cnt int
Select @cnt=0
SET NOCOUNT ON
while (@cnt<10000)
BEGIN
INSERT INTO NUMBERS(NUMBER) SELECT @cnt
SELECT @cnt=@cnt+1
end
Run Code Online (Sandbox Code Playgroud) 我试图在仅允许t-sql的系统上运行导出。我知道足够多的php来进行foreach循环,但是我不太了解t-sql来生成给定数量的多行。我需要一个结果来列出具有“ 1 of 4”的项目列表,例如结果中包含的数据
给像这样的桌子
orderid, product, quantity
1000,ball,3
1001,bike,4
1002,hat,2
Run Code Online (Sandbox Code Playgroud)
我如何获得选择查询结果,例如:
orderid,item_num,total_items,产品
1000、1、3,球
1000、2、3,球
1000、3、3,球
1001,1,4,自行车
1001,2,4,自行车
1001、3、4,自行车
1001、4、4,自行车
1002,1,2,帽子
1002,2,2,帽子
在我的SQL查询中,我计算每天每小时的订单数量.我的查询看起来像这样:
SELECT COUNT(dbo.Uputa.ID),{ fn HOUR(dbo.Orders.Date) } AS Hour
FROM Orders
WHERE dbo.Orders.Date BETWEEN '2011-05-01' AND '2011-05-26'
GROUP BY { fn HOUR(dbo.Orders.Date) }
ORDER BY Hour
Run Code Online (Sandbox Code Playgroud)
我的问题是查询只返回dbo.Orders.Date中的现有小时数.
例如:
Number Hour
12 3
12 5
Run Code Online (Sandbox Code Playgroud)
我想像这样返回所有时间:
Number Hour
0 0
0 1
0 2
12 3
0 4
12 5
...
0 23
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何做到这一点?
我的印象是递归CTE是基于设置的,但在最近的SO帖子中,有人提到它们是循环.
是否基于递归CTE设置?假设基于集合的操作不能成为循环,我错了吗?
请帮助将Oracle查询转换为等效的SQL Server:
SELECT (LEVEL+1-1) AS lvl
FROM dual
CONNECT BY LEVEL <= 10
/
Run Code Online (Sandbox Code Playgroud)
输出是1到10之间的数字:
LVL
----
1
2
3
...
10
Run Code Online (Sandbox Code Playgroud)
我知道SQL Server中有层次结构方法,内置插件GetLevel等等.这可以用来得到相同的结果吗?
如果需要(不确定)创建双表 - 从这里复制:http://blog.sqlauthority.com/2010/07/20/sql-server-select-from-dual-dual-equivalent/
CREATE TABLE DUAL
(
DUMMY VARCHAR(1)
)
GO
INSERT INTO DUAL (DUMMY)
VALUES ('X')
GO
Run Code Online (Sandbox Code Playgroud)
专门寻找可以使用smth的例子.像查询中的LEVEL一样.例如:表格中只有一个开始日期 - 2013年4月22日.但是使用LEVEL我可以按如下方式增加它:
SELECT start_date, start_date+LEVEL-1 AS start_date_btwn
FROM my_tab
WHERE id = 1
CONNECT BY LEVEL<=10
/
START_DATE START_DATE_BTWN
------------------------------
4/22/2013 4/22/2013
4/22/2013 4/23/2013
4/22/2013 4/24/2013
4/22/2013 4/25/2013
......
4/22/2013 4/30/2013
Run Code Online (Sandbox Code Playgroud)
非常感谢所有人提前.
我有查询,我在哪里调用函数 StoreFlowsByDates
select
sum(a.beglocalamount+a.localamount)
from
StoreFlowsByDates(ib_encodedate(EXTRACT(YEAR FROM CURRENT_DATE),1 ,1), ib_encodedate(EXTRACT(YEAR FROM CURRENT_DATE), 12 ,31), '', '', '', '', '', '', '', 'N', 'N', 'N', 'N', '1000000101', '') a
Run Code Online (Sandbox Code Playgroud)
此函数在选定的时间段内返回值.我需要编辑此查询以返回一年中每个月的值.就像是:
select
sum(a.beglocalamount+a.localamount),
[SELECTED_MONTH]
from
StoreFlowsByDates(ib_encodedate(EXTRACT(YEAR FROM CURRENT_DATE),[SELECTED_MONTH] ,1), ib_encodedate(EXTRACT(YEAR FROM CURRENT_DATE), [SELECTED_MONTH] ,31), '', '', '', '', '', '', '', 'N', 'N', 'N', 'N', '1000000101', '') a
group by
[SELECTED_MONTH]
Run Code Online (Sandbox Code Playgroud)
但是从1到12的周期.这样的事情甚至可能吗?
以下是架构
+---------+---------+
| Employee Table |
+---------+---------+
| EmpId | Name |
+---------+---------+
| 1 | John |
| 2 | Lisa |
| 3 | Mike |
| | |
+---------+---------+
+---------+-----------------+
| Family Table |
+---------+-----------------+
| EmpId | Relationship |
+---------+-----------------+
| 1 | Father |
| 1 | Mother |
| 1 | Wife |
| 2 | Husband |
| 2 | Child |
+---------+-----------------+
+---------+---------+
| Loan Table |
+---------+--------+
| LoanId | EmpId …Run Code Online (Sandbox Code Playgroud) sql ×7
sql-server ×4
t-sql ×4
cycle ×1
firebird ×1
insert ×1
oracle ×1
outer-join ×1
series ×1