带一张Orders桌子:
(OrderID, date, customerID, status, etc)
和一张OrderDetails桌子:
(ParentID, itemID, quantity, price, etc)
我想创建一个SQL查询,它将导出CSV平面文件Order和OrderDetail散布的行.例如,输出可能看起来像这样(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.
我正在使用Rollup子句,以及它如何显示各种级别的聚合WITH NULL值,显示不同级别,rollups例如rollup(year,month,week)将在每个级别显示小计.
我希望它卷起来但又希望看到最高级别的聚合.所以我不想看到任何null价值观.
知道我该怎么办?
问候Manjot
这是警告......
如果你有一个具有单一列的表和列恰好是一个identity与柱identity_insert关断,它仍然是可以写入该表中的T-SQL INSERT语句?
我从另一个调用一个存储过程,我调用的过程有一个输出参数.然后我将输出值传递给局部变量.这一切都很好,但问题是这个过程中还有一个select语句,所以当我exec,最终结果集中返回过程的结果.
有没有办法简单地获取输出参数的值,并忽略其他所有内容?
这是代码:
declare @Ids table ( Id int identity(1,1));
SET IDENTITY_INSERT @Ids ON;
Run Code Online (Sandbox Code Playgroud)
我得到:
'@Ids'附近的语法不正确
我看不出有什么不对.有任何想法吗?谢谢.
我有一些与之相关的数据ValidFrom和ValidTo日期.简单来说:
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)
此表上有一个非聚集索引,其中包含两个日期作为键值.
我也有涵盖了所有日期从时间维度表1900来2999.
我试图找出我怎么能选择一个范围从日期维度表的日期(假设2016-01-01到2016-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)
在此先感谢您的任何建议!
我有一个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列是实际日期的日期名称(以防它可能会发挥作用)
我有一个Visual Studio SSDT项目,我用它来跟踪所有数据库更改,它都保持在源代码管理下.
从Visual Studio我可以将其部署到我的本地SQL Server以及我们的测试环境.但是出于安全原因,我无法远程连接到我们的生产SQL Server,但我可以将RDP连接到生产服务器.
确保将所有数据库更改部署到生产中的最佳方法是什么?
不确定它对这个问题有多大影响,但我使用的是VS 2015和SQL Server 2012.
我有一个数据类型为 的列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在本例中)