我有以下查询。我不确定为什么它会说出标题中的错误。我标记了错误在哪里。
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
答案 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'