Sql 不带[]的透视查询
我已使用此pivot查询创建了此视图:Sql 不带[]的透视查询,sql,sql-server,pivot,Sql,Sql Server,Pivot,我已使用此pivot查询创建了此视图: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[ws_monatsreport] AS SELECT * FROM ( SELECT a.AdressNrADR,k.monat,p.Id_kopf,a.name + ' '+ a.vorname as Name,p.Artikel, p.Tag,CASE WHEN CAST(p.wert AS VARCH
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[ws_monatsreport] AS
SELECT *
FROM
(
SELECT a.AdressNrADR,k.monat,p.Id_kopf,a.name + ' '+ a.vorname as Name,p.Artikel, p.Tag,CASE WHEN CAST(p.wert AS VARCHAR(10)) = '' THEN CAST(p.Menge AS VARCHAR(10)) ELSE CAST(p.Wert AS VARCHAR(10)) END AS Menge
FROM ( ( ( ZUS_Monatsreport_Kopf k
LEFT JOIN ZUS_Monatsreport_Pos p ON k.Id = p.Id_Kopf)
LEFT JOIN ADR_Adressen a ON k.Adresse = a.AdressNrADR)
LEFT JOIN ADR_GruppenLink gl ON a.AdressNrADR = gl.AdressNrADR)
LEFT JOIN ADR_Gruppen g ON gl.GruppeADR = g.GruppeADR
)src
pivot
( max(menge)
for tag IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31],[35])
) piv;
GO
现在我不得不从我们的ERP系统中调用此视图。在我们的系统中,我可以编写SQL查询,但问题是[]
用于调用ERP中的参数
所以,如果我写
SELECT [AdressNrADR],[Monat],[Id_kopf,Name,Artikel],[1],[2] and so on
FROM ws_monatsreport
我犯了一个错误
有没有什么方法可以不使用[]
就可以做到这一点
如果我把它们拿走,我就得不到我想要的结果:(
数字列名有问题。请尝试在引用数字列名时包含表别名:如表1中的表2而不是1,2在视图定义中明确列出列而不是
*
,并为[1]、[2]、…
列指定一些其他名称:
CREATE VIEW [dbo].[ws_monatsreport] AS
SELECT
AdressNrADR
,monat
,Id_kopf
,Name
,Artikel
,[1] AS Tag1
,[2] AS Tag2
,[3] AS Tag3
...
,[35] AS Tag35
FROM
(
SELECT
a.AdressNrADR
,k.monat
,p.Id_kopf
,a.name + ' '+ a.vorname as Name
,p.Artikel
,p.Tag
,CASE WHEN CAST(p.wert AS VARCHAR(10)) = ''
THEN CAST(p.Menge AS VARCHAR(10))
ELSE CAST(p.Wert AS VARCHAR(10)) END AS Menge
FROM
ZUS_Monatsreport_Kopf k
LEFT JOIN ZUS_Monatsreport_Pos p ON k.Id = p.Id_Kopf
LEFT JOIN ADR_Adressen a ON k.Adresse = a.AdressNrADR
LEFT JOIN ADR_GruppenLink gl ON a.AdressNrADR = gl.AdressNrADR
LEFT JOIN ADR_Gruppen g ON gl.GruppeADR = g.GruppeADR
) src
pivot
( max(menge)
for tag IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31],[35])
) piv;
谢谢你的回复,遗憾的是它不起作用。我得到了一个错误,只有在我制作dbo.ws_monatsreport时才起作用。[1]