Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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 显示空行的Crystal报告交叉表_Sql_.net_Crystal Reports_Sql Server 2012_Crosstab - Fatal编程技术网

Sql 显示空行的Crystal报告交叉表

Sql 显示空行的Crystal报告交叉表,sql,.net,crystal-reports,sql-server-2012,crosstab,Sql,.net,Crystal Reports,Sql Server 2012,Crosstab,我有一个非常简单的交叉表报告,工作正常,但只有一个小问题 我的Sql看起来像这样 我将这些组应用于我的Crystal Report交叉表,并显示为以下行: 行 类型->组->子组->项目名称->子项目 列 姓名和日期 汇总字段 价值总和 我的问题可以在crystal report的快照中看到 我理解为什么我有这些空白行,因为它们显示的是“子项目”。。。但是但是这在数据库中为“NULL”,甚至不应显示在本报告中。如果“SubProjects”为空,只需不显示它们,而是显示“projectnam

我有一个非常简单的交叉表报告,工作正常,但只有一个小问题

我的Sql看起来像这样

我将这些组应用于我的Crystal Report交叉表,并显示为以下行:


类型->组->子组->项目名称->子项目


姓名和日期

汇总字段
价值总和

我的问题可以在crystal report的快照中看到

我理解为什么我有这些空白行,因为它们显示的是“子项目”。。。但是但是这在数据库中为“NULL”,甚至不应显示在本报告中。如果“SubProjects”为空,只需不显示它们,而是显示“projectname”

请问有路要走吗

谢谢

p.s。 这是我根据请求生成此表的SQL脚本

CREATE TABLE [dbo].[test](
    [id] [bigint] IDENTITY(1,1) NOT NULL,
    [Type] [nvarchar](150) NULL,
    [Ggroup] [nvarchar](150) NULL,
    [SubGroup] [nvarchar](150) NULL,
    [projectname] [nvarchar](150) NULL,
    [SubProject] [nvarchar](150) NULL,
    [colName] [nvarchar](150) NULL,
    [date] [datetime] NULL,
    [Value] [decimal](18, 0) NULL,
 CONSTRAINT [PK_test] PRIMARY KEY CLUSTERED 
(
    [id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
SET IDENTITY_INSERT [dbo].[test] ON 

GO
INSERT [dbo].[test] ([id], [Type], [Ggroup], [SubGroup], [projectname], [SubProject], [colName], [date], [Value]) VALUES (15, N'Program New
', N'INSTALLATIONS GENERALES
', NULL, N'Bitumage Studios Zone 9000
', NULL, N'Cost', CAST(0x0000A3E100000000 AS DateTime), CAST(123 AS Decimal(18, 0)))
GO
INSERT [dbo].[test] ([id], [Type], [Ggroup], [SubGroup], [projectname], [SubProject], [colName], [date], [Value]) VALUES (16, N'Program New
', N'INSTALLATIONS GENERALES
', NULL, N'Etude et Réalisation Etanchiété des Magasins
', NULL, N'Cost', CAST(0x0000A3E100000000 AS DateTime), CAST(321 AS Decimal(18, 0)))
GO
INSERT [dbo].[test] ([id], [Type], [Ggroup], [SubGroup], [projectname], [SubProject], [colName], [date], [Value]) VALUES (17, N'Program New
', N'INSTALLATIONS GENERALES
', NULL, N'Etude Réseau Modulation Centralisée
', NULL, N'Cost', CAST(0x0000A3E100000000 AS DateTime), CAST(666 AS Decimal(18, 0)))
GO
INSERT [dbo].[test] ([id], [Type], [Ggroup], [SubGroup], [projectname], [SubProject], [colName], [date], [Value]) VALUES (18, N'Program New
', N'INSTALLATIONS GENERALES
', NULL, N'Abris pour Véhicules ( 150 places )
', N'Réseau Anti-Incendie
', N'Cost', CAST(0x0000A3E100000000 AS DateTime), CAST(888 AS Decimal(18, 0)))
GO
INSERT [dbo].[test] ([id], [Type], [Ggroup], [SubGroup], [projectname], [SubProject], [colName], [date], [Value]) VALUES (19, N'Program New
', N'INSTALLATIONS GENERALES
', NULL, N'Abris pour Véhicules ( 150 places )
', N'Système de Signalisation de Sécurité
', N'Cost', CAST(0x0000A3E100000000 AS DateTime), CAST(999 AS Decimal(18, 0)))
GO
INSERT [dbo].[test] ([id], [Type], [Ggroup], [SubGroup], [projectname], [SubProject], [colName], [date], [Value]) VALUES (20, N'Program New
', N'INSTALLATIONS GENERALES
', NULL, N'Abris pour Véhicules ( 150 places )
', N'Acquisition et Installation D''un Auto-Commutateur *PABX
', N'Cost', CAST(0x0000A3E100000000 AS DateTime), CAST(457 AS Decimal(18, 0)))
GO
INSERT [dbo].[test] ([id], [Type], [Ggroup], [SubGroup], [projectname], [SubProject], [colName], [date], [Value]) VALUES (21, N'Program New
', N'INFRASTRUCTURES SOCIALES
', NULL, N'164 Studios
', NULL, N'Cost', CAST(0x0000A3E100000000 AS DateTime), CAST(365 AS Decimal(18, 0)))
GO
INSERT [dbo].[test] ([id], [Type], [Ggroup], [SubGroup], [projectname], [SubProject], [colName], [date], [Value]) VALUES (22, N'Program New
', N'INFRASTRUCTURES SOCIALES
', NULL, N'Rénovation Cabines Chantiers
', NULL, N'Cost', CAST(0x0000A3E100000000 AS DateTime), CAST(489 AS Decimal(18, 0)))
GO
INSERT [dbo].[test] ([id], [Type], [Ggroup], [SubGroup], [projectname], [SubProject], [colName], [date], [Value]) VALUES (31, N'Program New
', N'INFRASTRUCTURES SOCIALES
', NULL, N'164 Studios
', NULL, N'Cost', CAST(0x0000A3D700000000 AS DateTime), CAST(989 AS Decimal(18, 0)))
GO
INSERT [dbo].[test] ([id], [Type], [Ggroup], [SubGroup], [projectname], [SubProject], [colName], [date], [Value]) VALUES (32, N'Program New
', N'INFRASTRUCTURES SOCIALES
', NULL, N'164 Studios
', NULL, N'Realisation', CAST(0x0000A3D700000000 AS DateTime), CAST(555 AS Decimal(18, 0)))
GO
SET IDENTITY_INSERT [dbo].[test] OFF
GO

需要您用来生成这个的SQL…很可能您需要添加null处理(sum中的null使sum=null,而不管还有什么)。另外,您使用的是什么类型的数据库?空函数在数据库之间略有不同。请编辑您的问题并为我们添加其他信息。我正在使用MSSQL 2012…我是否也要附加SQL脚本?是的,请编辑问题以包含您的SQL脚本。我为您添加了sql server标记。isnull(字段,0)将用0替换Null。sum(ifnull(字段,0))将把sum中的null替换为0,表示您得到了。。。我已经按照指示附上了sqL脚本,请查看此问题