小编Eye*_*all的帖子

选择具有不同where条件的相同列

此查询返回特定日期范围内特定销售人员的"已结算"每日销售额总和:

 SELECT SUM(price) as closed_total
 FROM   dbo.Sales
 WHERE  salesperson_ID = @salesperson_ID
        AND date_ordered BETWEEN @start_date AND @end_date
        AND closed = 1
 GROUP BY date_ordered

输出如下:

daily_total
200
150
325
120
(etc)

我想修改查询以返回一列用于已关闭的销售,一列用于所有销售(相同的查询,但没有'closed = 1'条件),输出如下:

closed_total | all_total
200          | 275
150          | 150
325          | 500
120          | 280
(etc)

我已经尝试使用UNION来组合单独的查询,如下所示:

 SELECT SUM(price) as closed_total
 FROM   dbo.Sales
 WHERE  salesperson_ID = @salesperson_ID
        AND date_ordered BETWEEN @start_date AND @end_date
        AND closed = 1
 GROUP BY date_ordered
UNION ALL
 SELECT SUM(price) as all_total …

sql t-sql sql-server aggregate-functions

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

如何衡量存储过程的性能?

我正在使用不支持分析器的SQL Server 2005版本,​​试图找出如何最好地比较两个存储过程的性能.我已经为每个人执行了执行计划,但我不清楚我应该关注哪些提供的指标.我是否经历并加上各种费用?什么是最好的方法?

提前致谢.

t-sql performance stored-procedures

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

使用LINQ和带输出参数的存储过程丢失小数精度和小数位数

我有一个使用输出参数的存储过程,如下所示:

ALTER PROCEDURE [GetAmount] 
( 
@orderID [int], 
@totalcost decimal(18,2) OUTPUT 
) 
SELECT @totalcost = cost 
FROM mytable 
WHERE orderID = @orderID 
Run Code Online (Sandbox Code Playgroud)

当我将存储过程拖到设计器上时,designer.cs文件中的结果代码最终会失去精度和比例,如下所示:

[Parameter(DbType="Decimal")] ref System.Nullable<decimal> totalcost 
Run Code Online (Sandbox Code Playgroud)

这是一个问题,因为产品价格和订单总数之类的东西正在四舍五入(即19.95变为20).

现在,我可以手动更正.cs文件,但我必须记住每次更新时都要这样做.难道我做错了什么?有没有办法改变我的存储过程,使LINQ能够自动检测精度和规模?

c# linq linq-to-sql

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

使用计数表选择重复日期查询

我有一个事件表,其中一个字段指定事件发生的频率(以天为单位).我想在给定的日期范围内选择所有事件,包括计算的事件(例如,如果第一个事件日期是2011年1月6日,并且每7天发生一次,你会看到1月13日和1月20日结果).

这是我的事件表的样子:


event_ID INT,
event_title NVARCHAR(50),
first_event_date DATETIME,
occurs_every INT

阅读本文后,似乎最有效的处理方法是使用计数表,但我无法解决如何返回我正在寻找的结果.

假设我的数据看起来像这样:

event_ID | event_title | first_event_date | occurs_every
1        | Event 1     |  1/6/2011        |     7
2        | Event 2     |  1/8/2011        |     3

我正在寻找的结果将是:

event_ID | event_title | event_date | 
1        | Event 1     |  1/6/2011  | 
2        | Event 2     |  1/8/2011  | 
1        | Event 1     |  1/13/2011 | 
2        | Event 2     |  1/12/2011 | 
2        | Event 2     |  1/16/2011 | 
1 …

sql scheduling

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