|
v7: В прямом запросе не видно поля из вложенного запроса | ☑ | ||
---|---|---|---|---|
0
FobusVGrunt
12.02.16
✎
18:33
|
Нужно найти разницу между кол. сделок и кол. звонков:
SELECT Клиент,Ответственный,SUM(КолСделок)-SUM(КолЗвонки) AS Разница FROM (SELECT Ответственный AS [Ответственный ] ,Клиент AS [Клиент ] ,COUNT(ID) AS [КолСделок] ,0 AS [КолЗвонки] FROM [Справочник.срм_Сделка] WHERE (ISMARK <> '*') AND (ДатаДок between '20160101' and '20160212Я') GROUP BY Ответственный,Клиент UNION ALL SELECT д.шОтветственный AS [Ответственный ] ,д.шКонтрагент AS [Клиент ] ,0 AS [КолСделок] ,Count(ж.IDDOC) AS [КолЗвонки] FROM [Журнал] as ж LEFT JOIN [Документ.срм_Событие] AS д ON ж.IDDOC = д.IDDOC WHERE (ж.IDDOCDEF = '11EO') AND (ж.Date between '20160101' and '20160212Я') AND (ж.ismark <> '*') AND (д.шВидСобытия = ' 11F4 ') GROUP BY шОтветственный,шКонтрагент ) as вт GROUP BY Ответственный,Клиент КолЗвонки и КолСделок видит из подзапроса, а Клиент и Ответственный пишет ошибку не найден столбец. Не пойму, что ни так. Так тоже не видит-вт.Клиент... |
|||
1
FobusVGrunt
12.02.16
✎
18:38
|
(0) И еще может кто подскажет как можно вычислить разницу только положительную SUM(КолСделок)-SUM(КолЗвонки) - если это выражение меньше 0-ля, то ставить 0. Кроме как CASE SUM(КолСделок)-SUM(КолЗвонки) WHEN > 0 THEN SUM(КолСделок)-SUM(КолЗвонки) ELSE 0 END. есть варианты?
|
|||
2
mehfk
12.02.16
✎
18:38
|
напиши select * from select и увидишь реальные имена столбцов
|
|||
3
mehfk
12.02.16
✎
18:39
|
(1) HAVING
|
|||
4
FobusVGrunt
12.02.16
✎
18:48
|
(2) я так делал, возвращает таблицу с столбцами:Ответственный,Клиент,КолСделок,КолЗвонки
|
|||
5
FobusVGrunt
12.02.16
✎
18:50
|
(3) спасибо, попробую для вычисление разницы
|
|||
6
mehfk
12.02.16
✎
18:52
|
Да ну, фигня какая-то. Включи отладку или поймай реальный запрос профайлером.
|
|||
7
mehfk
12.02.16
✎
18:53
|
(5) грубо говоря HAVING это то же самое, что и WHERE только можно агрегатные функции накладывать.
|
|||
8
FobusVGrunt
12.02.16
✎
19:30
|
Вот таблица которую возвращает :select * from (select...)
https://www.dropbox.com/s/x305h2rpm4b2ylj/Выборка.jpg?dl=0 |
|||
9
FobusVGrunt
12.02.16
✎
19:33
|
меняю * на Ответственный (select Ответственный from (select...) )
Ошибка: no such column: Ответственный |
|||
10
trad
12.02.16
✎
19:36
|
либо пробелы в скобках убери, либо снаружи пиши тоже в скобках и с пробелами
|
|||
11
FobusVGrunt
12.02.16
✎
19:46
|
(10) Спасибо большое помогло, как это оно имя присваивало с пробелами, думал всегда отсекает. А если есть типитизация колонки[Клиент :Справочник.Контрагенты], то имя колонки "Клиент "
|
|||
12
trad
12.02.16
✎
19:56
|
псевдонимы колонок с типизирующими выражениями особым образом обрабатываются уже на клиенте не на скл-сервере
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |