Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 本质上与内部连接两者相同。我没有看到问题,您的cte是否没有生成您所追求的商店/部门的全面列表?因为查询看起来是可靠的。Stores表中包含的商店都在那里,它会正确地将它们全部拉回来,但是,没有给定日期范围数据的商店只是有一个随机的部门分类,其中的$0.0_Sql_Sql Server - Fatal编程技术网

Sql 本质上与内部连接两者相同。我没有看到问题,您的cte是否没有生成您所追求的商店/部门的全面列表?因为查询看起来是可靠的。Stores表中包含的商店都在那里,它会正确地将它们全部拉回来,但是,没有给定日期范围数据的商店只是有一个随机的部门分类,其中的$0.0

Sql 本质上与内部连接两者相同。我没有看到问题,您的cte是否没有生成您所追求的商店/部门的全面列表?因为查询看起来是可靠的。Stores表中包含的商店都在那里,它会正确地将它们全部拉回来,但是,没有给定日期范围数据的商店只是有一个随机的部门分类,其中的$0.0,sql,sql-server,Sql,Sql Server,本质上与内部连接两者相同。我没有看到问题,您的cte是否没有生成您所追求的商店/部门的全面列表?因为查询看起来是可靠的。Stores表中包含的商店都在那里,它会正确地将它们全部拉回来,但是,没有给定日期范围数据的商店只是有一个随机的部门分类,其中的$0.00。我认为这个查询也很可靠,直到我注意到一点奇怪的地方。哦,你的WHERE子句正在过滤它们,将DCRSales.WorkingDate移到“”和“”之间,然后去掉WHERE,就是这样!请将您的评论作为答案发布,以便我将其标记为正确。这绝对是一个


本质上与内部连接两者相同。我没有看到问题,您的
cte
是否没有生成您所追求的商店/部门的全面列表?因为查询看起来是可靠的。Stores表中包含的商店都在那里,它会正确地将它们全部拉回来,但是,没有给定日期范围数据的商店只是有一个随机的部门分类,其中的$0.00。我认为这个查询也很可靠,直到我注意到一点奇怪的地方。哦,你的
WHERE
子句正在过滤它们,将
DCRSales.WorkingDate移到“”和“”
之间,然后去掉
WHERE
,就是这样!请将您的评论作为答案发布,以便我将其标记为正确。这绝对是一个有趣的解决方案。然而,我们不使用统计软件包(尽管我试图说服他们使用R来处理更多面向数据的东西),高层现在就想要它,我很幸运地将他们拥有的数据拼凑成当前的格式。遗憾的是,在我工作的地方,对这类事情没有太多的思考和时间。那么,也许你可以使用一个存储过程或一个简短的程序/脚本来充分模拟这个过程。基本上:提取到临时表中,以一系列方式操作这些表(不影响原始数据),并从中生成最终结果。祝你好运。这确实奏效了!非常感谢你的帮助。
CREATE TABLE [dbo].[DCRSales](
    [WorkingDate] [smalldatetime] NOT NULL,
    [Store] [int] NOT NULL,
    [Department] [int] NOT NULL,
    [NetSales] [money] NOT NULL,
    [DSID] [int] IDENTITY(1,1) NOT NULL)

CREATE TABLE [dbo].[Stores](
    [Number] [int] NOT NULL,
    [Has_Deli] [bit] NOT NULL,
    [Alcohol_Register] [int] NULL,
    [Is_Cost_Saver] [bit] NOT NULL,
    [Store_Status] [nchar](10) NOT NULL,
    [Supervisor_Number] [int] NOT NULL,
    [Email_Address] [nchar](20) NOT NULL,
    [Sales_Area] [int] NULL,
    [PZ_Store_Number] [int] NULL,
    [Has_SCO] [bit] NULL,
    [SCO_Reg] [nchar](25) NULL,
    [Has_Ace] [bit] NULL,
    [Ace_Sq_Ft] [int] NULL,
    [Open_Date] [datetime] NULL,
    [Specialist] [nchar](2) NULL,
    [StateID] [int] NOT NULL)

CREATE TABLE [dbo].[DepartmentMap](
    [Department_Number] [int] NOT NULL,
    [Description] [nvarchar](max) NOT NULL,
    [Parent_Department] [int] NOT NULL)

CREATE TABLE [dbo].[ParentDepartments](
    [Parent_Department] [int] NOT NULL,
    [Description] [varchar](50) NULL
WITH CTE AS (
    SELECT S.Number as Store, DepartmentMap.Department_Number as Department, ParentDepartments.Parent_Department as Parent, ParentDepartments.Description as ParentDescription, DepartmentMap.Description as ChildDescription
    FROM Stores as S CROSS JOIN dbo.DepartmentMap INNER JOIN ParentDepartments ON DepartmentMap.Parent_Department = ParentDepartments.Parent_Department
    WHERE S.Number IN(<STORES>) AND Department_Number IN(<DEPTS>)
)
SELECT CTE.Store, CTE.Department, SUM(ISNULL(DCRSales.NetSales, 0.00)) as Sales, CTE.Parent, CTE.ParentDescription, CTE.ChildDescription
FROM CTE LEFT JOIN DCRSales ON DCRSales.Department = CTE.Department AND DCRSales.Store = CTE.Store
WHERE DCRSales.WorkingDate BETWEEN '<FIRSTDAY>' AND '<LASTDAY>' OR DCRSales.WorkingDate IS NULL
GROUP BY CTE.Store, CTE.Department, CTE.Parent, CTE.ParentDescription, CTE.ChildDescription
ORDER BY CTE.Store ASC, CTE.Department ASC
DCRSales.WorkingDate BETWEEN '<FIRSTDAY>' AND '<LASTDAY>'