小编Joh*_*hnZ的帖子

TSQL将总和转换为Money

使用SQL Server 2008,我试图让其中一些列返回$ xxx,xxx.xx

这是我正在使用的查询(此查询然后一些更新只是为了计算数字并##tempshow在结尾处选择)

SELECT 
    CASE GROUPING(s.StoreID) WHEN 1 THEN '' ELSE s.StoreID END [StoreID],
    CASE GROUPING(p.VendorID) WHEN 1 THEN '' ELSE p.VendorID END [VendorID],
    SUM(d.Quantity) AS [UnitSold],
    CAST(SUM(d.amount * d.quantity) AS DECIMAL(18,2)) AS Amount, 
    CAST(SUM(d.Discount) AS DECIMAL(18,2)) AS Discount,
    CAST(SUM((d.Amount * d.Quantity - d.Discount)) AS DECIMAL(18,2)) AS ExtSold,
    CAST(SUM(d.Cost * d.Quantity) AS DECIMAL(18,2)) AS Cost,
    CAST(0 AS DECIMAL(18,2)) AS Profit,
    CAST(0 AS DECIMAL(18,2)) AS OnHand,
    CAST(0 AS DECIMAL(18,2)) AS OnHandRetail,
    CAST(0 AS DECIMAL(18,2)) AS OnHandCost,
    CAST(0 …
Run Code Online (Sandbox Code Playgroud)

currency sum sql-server-2008

12
推荐指数
2
解决办法
8万
查看次数

INSERT INTO动态添加列

运行SQL Server 2005/2008,我正在重写我的查询更清洁,更符合不包括坏习惯.我曾经有很多IF陈述并且PIVOT要做到这一点,但现在找到了一种更好的方法来实现它,只需要最后一点就能使它几乎完美.

DECLARE @startdate DATETIME;
DECLARE @enddate DATETIME;
DECLARE @showstore INT;
DECLARE @showcashier INT;
DECLARE @showregister INT;
DECLARE @showdate INT;
DECLARE @sql NVARCHAR(MAX);
DECLARE @result0 NVARCHAR(MAX);

SET @startdate = '1/1/2012';
SET @enddate = '2/28/2013';
SET @showdate = 1;
SET @showstore = 0;
SET @showcashier = 1;
SET @showregister = 0;
SET @startdate = DATEADD(DAY, DATEDIFF(DAY, 0, @startdate), 0);
SET @enddate = DATEADD(DAY, DATEDIFF(DAY, 0, @enddate), 0);

SET @sql = N'CREATE TABLE ##a13 (' + SUBSTRING( …
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 sql-server-2008

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

标签 统计

sql-server-2008 ×2

currency ×1

sql-server-2005 ×1

sum ×1