Sql 显示空行的Crystal报告交叉表
我有一个非常简单的交叉表报告,工作正常,但只有一个小问题 我的Sql看起来像这样 我将这些组应用于我的Crystal Report交叉表,并显示为以下行: 行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
类型->组->子组->项目名称->子项目 列
姓名和日期 汇总字段
价值总和 我的问题可以在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脚本,请查看此问题