使用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) 运行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)