Sql:关键字附近的语法错误" as"

时间:2014-05-27 06:41:40

标签: sql sql-server

我有以下查询。我不确定为什么它会说出标题中的错误。我标记了错误在哪里。

SELECT cmp.idcampanie,
       spt.idspot,
       spt.alias,
       perioada =
  (SELECT perioada
   FROM dbo.tf_formatperioada(spt.datainceput, spt.datasfarsit)),
       tipprogramare = tipprg.nume,
       ora =
  (SELECT ora
   FROM dbo.tf_formatora(spt.ora, 0)),
       spt.aliasex,
       durata =
  (SELECT durata
   FROM dbo.tf_formatdurata(spt.durata)),
       spt.coststandard,
       spt.cost,
       spt.nrdifuzari,
       spt.valoare
FROM dbo.campanii AS cmp CROSS apply
  (SELECT idspot, ALIAS, datainceput, datasfarsit, orafixa, tipprogramare, ora, aliasex, durata, coststandard, cost, nrdifuzari = sum(nrdifuzari), valoare = sum(valoare)
   FROM dbo.tf_costurispoturi(cmp.idgrupmedia, cmp.idcampanie, cmp.datainceput, cmp.datasfarsit, cmp.idoferta, cmp.coeficienticostduratespoturi, cmp.coeficientcost, NULL)
   WHERE idcanalmedia IS NOT NULL
   GROUP BY idspot, ALIAS, datainceput, datasfarsit, orafixa, tipprogramare, ora, aliasex, durata, coststandard, cost) AS spt
INNER JOIN dbo.tipuriprogramari AS tipprg ON tipprg.orafixa = spt.orafixa
AND tipprg.tipprogramare = spt.tipprogramare
WHERE cmp.idgrupmedia = 1
  AND cmp.datainceput <= '5.01.2014'
  AND cmp.datasfarsit >= '5.30.2014'
ORDER BY cmp.idcampanie ASC,
         spt.ALIAS ASC, spt.ora **AS spt** COMPUTE spt AS sptdtl BY idcampanie,
                                                                    idspot,
                                                                    ALIAS,
                                                                    perioada,
                                                                    tipprogramare) RELATE idcampanie TO idcampanie) AS spt

1 个答案:

答案 0 :(得分:0)

按顺序排列错误

ORDER BY 
    cmp.idcampanie ASC,
    spt.ALIAS ASC, 
    --spt.ora **AS spt** COMPUTE spt AS sptdtl 
    BY idcampanie,
    idspot,
    ALIAS,
    perioada,
    tipprogramare
    ) 
   RELATE idcampanie TO idcampanie) AS spt

除了此查询未给出错误外,请参阅以下查询。

 SELECT cmp.idcampanie,
       spt.idspot,
       spt.alias,
       perioada = (SELECT perioada
                   FROM   dbo.Tf_formatperioada(spt.datainceput,
                          spt.datasfarsit)),
       tipprogramare = tipprg.nume,
       ora = (SELECT ora
              FROM   dbo.Tf_formatora(spt.ora, 0)),
       spt.aliasex,
       durata = (SELECT durata
                 FROM   dbo.Tf_formatdurata(spt.durata)),
       spt.coststandard,
       spt.cost,
       spt.nrdifuzari,
       spt.valoare
FROM   dbo.campanii AS cmp
       CROSS apply (SELECT idspot,
                           alias,
                           datainceput,
                           datasfarsit,
                           orafixa,
                           tipprogramare,
                           ora,
                           aliasex,
                           durata,
                           coststandard,
                           cost,
                           nrdifuzari = Sum(nrdifuzari),
                           valoare = Sum(valoare)
                    FROM   dbo.Tf_costurispoturi(cmp.idgrupmedia,
                           cmp.idcampanie,
                           cmp.datainceput,
                                   cmp.datasfarsit, cmp.idoferta,
                           cmp.coeficienticostduratespoturi,
                                   cmp.coeficientcost,
                                   NULL)
                    WHERE  idcanalmedia IS NOT NULL
                    GROUP  BY idspot,
                              alias,
                              datainceput,
                              datasfarsit,
                              orafixa,
                              tipprogramare,
                              ora,
                              aliasex,
                              durata,
                              coststandard,
                              cost) AS spt
       INNER JOIN dbo.tipuriprogramari AS tipprg
               ON tipprg.orafixa = spt.orafixa
                  AND tipprg.tipprogramare = spt.tipprogramare
WHERE  cmp.idgrupmedia = 1
       AND cmp.datainceput <= '5.01.2014'
       AND cmp.datasfarsit >= '5.30.2014'