3706 Синтаксическая ошибка: ожидается что-то между целым числом и ')' - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь выяснить, в чем проблема, часть моего кода выглядит так:

(sel no_2, sum(L) from (
                sel no_2, colB, count(distinct(colC))
                from dbA.tblP as p
                    join dbB.tblI as i on p.id = i.id and p.no = i.no
                    join dbB.tblT as t on i.no_2 = t.no_2
                    join dbA.mp_tblA as a on t.no_2 = a.no_2) l 
                    ) as l
group by 1) as l        

Teradata указывает на строку с группой на 1) в ней. Что я должен поставить между скобками «1» и «)»? Есть ли способ решить это?

1 Ответ

0 голосов
/ 29 января 2020

Похоже, у вас есть дополнительный ) l, который вызывает синтаксическую ошибку. Попробуйте это:

SELECT no_2, SUM(L) 
FROM (
  SELECT no_2, colB, COUNT(DISTINCT colC) AS no_colC
  FROM dbA.tblP AS p
  INNER JOIN dbB.tblI AS i ON p.id = i.id AND p.no = i.no
  INNER JOIN dbB.tblT AS t ON i.no_2 = t.no_2
  INNER JOIN dbA.mp_tblA AS a ON t.no_2 = a.no_2
) AS l
GROUP BY 1

Несколько предложений по удобочитаемости, в дополнение к комментариям:

  • используйте SELECT вместо SEL
  • укажите INNER JOIN вместо JOIN
  • , если вы планируете использовать count(distinct(colC)), присвойте ему псевдоним, например no_colC

Кроме того, на какое значение «L» вы ссылаетесь в SUM(L)? Запрос не будет работать как есть, если вы не включите это поле в свой дополнительный выбор.

...