|
v7: Где ошибка в запросе ? (результат пустой) | ☑ | ||
---|---|---|---|---|
0
zenon46
13.11.19
✎
15:47
|
Доброго дня!
Подскажите пожалуйста, где я допустил ошибку в запросе, т.к. результат пустой. Хотя это не правильно. SELECT coalesce($ДокументСтроки.Реализация.Номенклатура, $ДокументСтроки.Реализация_Распоряжение.Номенклатура, $ДокументСтроки.Реализация_Розница.Номенклатура) [Номенклатура], count (coalesce(ДокРеал.IDDOC, ДокРасп.IDDoc, ДокРозн.IDDoc)) AS КолПродаж FROM _1SJourn Жур INNER JOIN $ДокументСтроки.Реализация AS ДокРеал ON ДокРеал.IDDoc = Жур.IDDoc INNER JOIN $ДокументСтроки.Реализация_Распоряжение AS ДокРасп ON ДокРасп.IDDoc = Жур.IDDoc INNER JOIN $ДокументСтроки.Реализация_Розница AS ДокРозн ON ДокРозн.IDDoc = Жур.IDDoc WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AND coalesce($ДокументСтроки.Реализация.Номенклатура, $ДокументСтроки.Реализация_Распоряжение.Номенклатура, $ДокументСтроки.Реализация_Розница.Номенклатура) = :ВбрТовар GROUP BY coalesce($ДокРеал.Номенклатура, $ДокРасп.Номенклатура, $ДокРозн.Номенклатура) |
|||
1
Ёпрст
13.11.19
✎
15:48
|
(0)
INNER JOIN $ДокументСтроки.Реализация AS ДокРеал ON ДокРеал.IDDoc = Жур.IDDoc INNER JOIN $ДокументСтроки.Реализация_Распоряжение AS ДокРасп ON ДокРасп.IDDoc = Жур.IDDoc |
|||
2
Ёпрст
13.11.19
✎
15:49
|
ну не может iddocбыть одинаковым у документов разного вида
|
|||
3
zenon46
13.11.19
✎
16:04
|
(2) добавил
(Жур.iddocdef=$ВидДокумента.Реализация_Розница OR Жур.iddocdef=$ВидДокумента.Реализация_Распоряжение OR Жур.iddocdef=$ВидДокумента.Реализация) все равно пусто |
|||
4
Ёпрст
13.11.19
✎
16:13
|
(3) куда добавил ?
|
|||
5
zenon46
13.11.19
✎
16:13
|
(4) ну разумеется в WHERE
|
|||
6
Ёпрст
13.11.19
✎
16:14
|
если нужны данные с двух документов, то правильнее делать через union all, а не соединениями
|
|||
7
Ёпрст
13.11.19
✎
16:14
|
(5) И ? как ЭТО поможет при inner join ?
|
|||
8
zenon46
13.11.19
✎
16:14
|
(7) я уже на левое переделал
|
|||
9
Ёпрст
13.11.19
✎
16:15
|
ладно, не так, при INNER join
|
|||
10
zenon46
13.11.19
✎
16:22
|
(6) подскажите как правильно сделать по двум видам документов?
|
|||
11
FIXXXL
13.11.19
✎
16:26
|
(10) (6)
|
|||
12
Salimbek
13.11.19
✎
16:40
|
(10) Вообще говоря - правильнее писать в документах то, что тебе нужно в какой-то Регистр, а запросом выбирать данные из этого Регистра.
А если на Левое переделал, то, по идее, должно работать. Если не работает - скинь сюда новый запрос, иначе непонятно - чего там у тебя сейчас. |
|||
13
zenon46
13.11.19
✎
16:49
|
(12) попробовал через union
SELECT $ДокументСтроки.Реализация.Номенклатура [Номенклатура], count(distinct ДокР.IDDOC) AS КолПродаж FROM _1SJourn Жур INNER JOIN $ДокументСтроки.Реализация AS ДокР ON ДокР.IDDoc = Жур.IDDoc WHERE (Жур.CLOSED&1=1) AND Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AND ($ДокументСтроки.Реализация.Номенклатура = :ВбрТовар) GROUP BY $ДокР.Номенклатура UNION ALL SELECT $ДокументСтроки.Реализация_Розница.Номенклатура [Номенклатура], count(distinct ДокРоз.IDDOC)AS КолПродаж FROM _1SJourn Жур INNER JOIN $ДокументСтроки.Реализация_Розница AS ДокРоз ON ДокРоз.IDDoc = Жур.IDDoc WHERE (Жур.CLOSED&1=1) AND Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AND ($ДокументСтроки.Реализация_Розница.Номенклатура = :ВбрТовар) GROUP BY $ДокРоз.Номенклатура UNION ALL SELECT $ДокументСтроки.Реализация_Распоряжение.Номенклатура [Номенклатура], count(distinct ДокРасп.IDDOC)AS КолПродаж FROM _1SJourn Жур INNER JOIN $ДокументСтроки.Реализация_Распоряжение AS ДокРасп ON ДокРасп.IDDoc = Жур.IDDoc WHERE (Жур.CLOSED&1=1) AND Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AND ($ДокументСтроки.Реализация_Распоряжение.Номенклатура = :ВбрТовар) GROUP BY $ДокРасп.Номенклатура Запрос срабатывает, и счетчик показывает, но мне надо получить общий результат. (https://prnt.sc/pwewym) |
|||
14
palpetrovich
13.11.19
✎
17:40
|
(13) все это во внутренний запрос, а во внешем - гриппируй
и точно все эти документы не двигают один какой-нибудь регистр? |
|||
15
zenon46
13.11.19
✎
18:14
|
(14) ПартииТМЦ точно двигают
|
|||
16
palpetrovich
13.11.19
✎
18:18
|
(15) ну так к регистру запрос и делай, (12) еще писали
|
|||
17
zenon46
13.11.19
✎
18:42
|
(16) через запрос к регистру я так же смогу получить количество документов в ТЧ которых попадалась выбранная номенклатура ?
|
|||
18
palpetrovich
13.11.19
✎
18:54
|
(17) дык, у меня к примеру это работает
SELECT count(distinct Рег.ИдДокумента) AS КолПродаж ,Рег.Товар FROM dbo.РегистрДвижения_Партии Рег (nolock) Where 1=1 and Рег.Позиция > '20190901' and Рег.Позиция < '20190903' and Рег.ВидДокумента = 15 --РасходнаяНакладная GROUP BY Рег.Товар тебе это надо переделать под свое - запрос не по предствалению делать, а как метапарсер учит. ну и заменить "and Рег.ВидДокумента = 15" на что-то типа "and Рег.ВидДокумента in(15,16,17)" где 15,16,17 - это твои виды документов |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |