小编iam*_*ave的帖子

使用SQL将父/子行导出到平面文件中

带一张Orders桌子:
(OrderID, date, customerID, status, etc)

和一张OrderDetails桌子:
(ParentID, itemID, quantity, price, etc)

我想创建一个SQL查询,它将导出CSV平面文件OrderOrderDetail散布的行.例如,输出可能看起来像这样(H并分别D表示"Header"和"Detail").

"H",2345,"6/1/09",856,"Shipped"
"D",2345,52,1,1.50
"D",2345,92,2,3.25
"D",2345,74,1,9.99
"H",2346,"6/1/09",474,"Shipped"
"D",2346,74,1,9.99
"D",2346,52,1,1.50
Run Code Online (Sandbox Code Playgroud)

不知道从哪里开始这个.有任何想法吗?TIA.

t-sql

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

TSQL汇总 - 返回非空

我正在使用Rollup子句,以及它如何显示各种级别的聚合WITH NULL值,显示不同级别,rollups例如rollup(year,month,week)将在每个级别显示小计.

我希望它卷起来但又希望看到最高级别的聚合.所以我不想看到任何null价值观.

知道我该怎么办?

问候Manjot

t-sql sql-server-2008

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

是否可以为单个列表编写"insert into"语句?

这是警告......

如果你有一个具有单一列的表和列恰好是一个identity与柱identity_insert,它仍然是可以写入该表中的T-SQL INSERT语句?

t-sql

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

是否可以在忽略SELECT语句的情况下执行具有输出参数的T-SQL存储过程?

我从另一个调用一个存储过程,我调用的过程有一个输出参数.然后我将输出值传递给局部变量.这一切都很好,但问题是这个过程中还有一个select语句,所以当我exec,最终结果集中返回过程的结果.

有没有办法简单地获取输出参数的值,并忽略其他所有内容?

t-sql

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

语法错误表变量

这是代码:

declare @Ids table ( Id int identity(1,1));

SET IDENTITY_INSERT @Ids ON;
Run Code Online (Sandbox Code Playgroud)

我得到:

'@Ids'附近的语法不正确

我看不出有什么不对.有任何想法吗?谢谢.

t-sql

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

T-SQL - 跟踪一段时间内的事件

我有一些与之相关的数据ValidFromValidTo日期.简单来说:

MembershipId | ValidFromDate | ValidToDate
==========================================
0001         | 1997-01-01    | 2006-05-09
0002         | 1997-01-01    | 2017-05-12
0003         | 2005-06-02    | 2009-02-07
Run Code Online (Sandbox Code Playgroud)

此表上有一个非聚集索引,其中包含两个日期作为键值.

我也有涵盖了所有日期从时间维度表19002999.

我试图找出我怎么能选择一个范围从日期维度表的日期(假设2016-01-012016-12-31),然后确定对于每一日期,许多成员是如何在该日起生效.

下面的代码完成了工作,但性能不是很好,我想知道是否有人有任何建议可以更好地解决这个问题?

SELECT 
   d.DateKey
  ,(SELECT COUNT(*) FROM Memberships AS m
    WHERE d.DateKey between m.ValidFromDateKey and m.ValidToDateKey
    ) AS MembershipCount

FROM       
   DIM.[Date] AS d

WHERE
   d.CalendarYear = 2016
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的任何建议!

sql t-sql date dimensional-modeling

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

SQL force插入虚拟数据

我有一个CTE,其中包含以下语句,以获取一天中用户的总休息时间.

CTEBreak as
(
    select max(name) as Name
          ,sum(DurationInHours) as HourlyBreak
          ,Work_Day
    from ctesemifinal
    where id in (4130)
    group by Work_Day
)
Run Code Online (Sandbox Code Playgroud)

这会返回如下结果:

但是,如果他们没有休息一天,它会导致:

有些日子不包括在内,因为他没有休息.我想要的是在用户没有休息的日子里强制插入'1'.我该如何做到这一点?谢谢!

顺便说一下,Work_Day列是实际日期的日期名称(以防它可能会发挥作用)

sql sql-server

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

从SSDT项目部署SQL数据库更改

我有一个Visual Studio SSDT项目,我用它来跟踪所有数据库更改,它都保持在源代码管理下.

从Visual Studio我可以将其部署到我的本地SQL Server以及我们的测试环境.但是出于安全原因,我无法远程连接到我们的生产SQL Server,但我可以将RDP连接到生产服务器.

确保将所有数据库更改部署到生产中的最佳方法是什么?

不确定它对这个问题有多大影响,但我使用的是VS 2015和SQL Server 2012.

sql-server deployment sql-server-data-tools

2
推荐指数
1
解决办法
467
查看次数

检查列值是否为数字。SSIS

我有一个数据类型为 的列varchar。我想用 替换所有非数字值NULL

例如,我的列可以包含值,MIGB_MGW但也可以包含值1352。我当前使用的表达式Derived Column Transformation Editor是:

(DT_I4)kbup == (DT_I4)kbup ? 1  : 0
Run Code Online (Sandbox Code Playgroud)

但当然,这取代了我想要保留的所有价值观1。我将使用什么表达式来保留数值?(1352在本例中)

sql sql-server ssis visual-studio

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