|
как три строки запросом выдать в одну, но в три столбца | ☑ | ||
---|---|---|---|---|
0
Luganchanin
17.06.15
✎
18:50
|
Добрый день, люди
Есть запрос: ВЫБРАТЬ СвободныеОстаткиОстатки.Номенклатура, СвободныеОстаткиОстатки.Характеристика, СвободныеОстаткиОстатки.Склад КАК Склад, СвободныеОстаткиОстатки.ВНаличииОстаток КАК ВНаличииОстаток ИЗ РегистрНакопления.СвободныеОстатки.Остатки КАК СвободныеОстаткиОстатки Результат: Номенклатура Склад ВНаличииОстаток 1041-002RS Первый 4 1041-002RS Второй 7 1041-002RS Третий 484 можно ли написать запрос таким образом чтобы по одной позиции номенклатуры суммы по складам шли в одной строке: Номенклатура ОстатокПервыйСклад ОстатокВторойСклад ОстатокТретийСклад 1041-002RS 4 7 484 |
|||
1
Господин ПЖ
17.06.15
✎
18:54
|
это в запросе надо или в отчете?
|
|||
2
DTXqueque
17.06.15
✎
18:56
|
Три левых соединения
|
|||
3
Господин ПЖ
17.06.15
✎
18:57
|
(2) а если 4 склада?
|
|||
4
Господин ПЖ
17.06.15
✎
18:57
|
скд сама "шахматку" нарисует
|
|||
5
DTXqueque
17.06.15
✎
19:02
|
(3) То четыре :)
В запросе по-другому никак. |
|||
6
DTXqueque
17.06.15
✎
19:03
|
Можно ещё программно запрос состряпать
|
|||
7
Luganchanin
17.06.15
✎
19:07
|
хочется именно в запросе. потому как позиций номенклатуры три десятка тысяч, и обрабатывать каждую хочется за одну итерацию.
(2) про соеденение я и сам думал, но не пойму что и соеденять чтобы получить желаемое (3) количество складов фиксированно и не велико. два или три. может быть нужен будет результат в виде: первый, второй+третий |
|||
8
DTXqueque
17.06.15
✎
19:12
|
(7) Номенклатуру с тремя таблицами остатков с отбора по соответствующим складам.
|
|||
9
kosts
17.06.15
✎
19:54
|
Убрать из запроса
Добавить
Затем сделать группировку и суммирование |
|||
10
zak555
17.06.15
✎
19:55
|
(9) чем отличается от (2) ?
|
|||
11
kosts
17.06.15
✎
20:12
|
(10) Тем, что нет левых соединения
|
|||
12
Luganchanin
17.06.15
✎
23:21
|
(9) идея хорошая, но увы
Запрос: ВЫБРАТЬ Выбор Когда Склад = &Склад1 Тогда ВНаличииОстаток Иначе 0 Конец Как ОстатокПервыйСклад, Выбор Когда Склад = &Склад2 Тогда ВНаличииОстаток Иначе 0 Конец Как ОстатокВторойСклад, Выбор Когда Склад = &Склад3 Тогда ВНаличииОстаток Иначе 0 Конец Как ОстатокТретийСклад ИЗ РегистрНакопления.СвободныеОстатки.Остатки КАК СвободныеОстаткиОстатки ГДЕ СвободныеОстаткиОстатки.Номенклатура = &Номенклатура Даёт результат в три строки: ОстатокПервыйСклад ОстатокВторойСклад ОстатокТретийСклад 4 484 4 по одной на каждый склад |
|||
13
Zhuravlik
17.06.15
✎
23:33
|
(12) так сгруппировать надо
|
|||
14
Господин ПЖ
17.06.15
✎
23:34
|
(12) тебе же писали про группировку и сумма()
|
|||
15
Luganchanin
18.06.15
✎
01:21
|
(14) (13) (9) А таки да! спасибо, получилось!
правда запрос получился не очень элегантный, но тем не менее ВЫБРАТЬ СвободныеОстаткиОстатки.Номенклатура, СвободныеОстаткиОстатки.Характеристика, СУММА(ВЫБОР КОГДА СвободныеОстаткиОстатки.Склад = &Склад1 ТОГДА СвободныеОстаткиОстатки.ВНаличииОстаток ИНАЧЕ 0 КОНЕЦ) КАК ОстатокСклад1, СУММА(ВЫБОР КОГДА СвободныеОстаткиОстатки.Склад = &Склад2 ТОГДА СвободныеОстаткиОстатки.ВНаличииОстаток ИНАЧЕ 0 КОНЕЦ) КАК ОстатокСклад2, СУММА(ВЫБОР КОГДА СвободныеОстаткиОстатки.Склад = &Склад3 ТОГДА СвободныеОстаткиОстатки.ВНаличииОстаток ИНАЧЕ 0 КОНЕЦ) КАК ОстатокСклад3 ИЗ РегистрНакопления.СвободныеОстатки.Остатки КАК СвободныеОстаткиОстатки СГРУППИРОВАТЬ ПО СвободныеОстаткиОстатки.Номенклатура, СвободныеОстаткиОстатки.Характеристика |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |