Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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 不带[]的透视查询_Sql_Sql Server_Pivot - Fatal编程技术网

Sql 不带[]的透视查询

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

我已使用此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 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]