|
Ошибка в Запросе | ☑ | ||
---|---|---|---|---|
0
SH_tan
19.05.14
✎
16:40
|
Добрый день, подскажите в Запросе почему не выводит остаток когда нет резерва, подскажите в чем проблема.
ВОТ Текст Запроса (когда есть резерв тогда нормально выводит) ВЫБРАТЬ РезервыТоваровОстатки.Товар, РезервыТоваровОстатки.Склад, РезервыТоваровОстатки.РезервОстаток КАК РезервОстаток, РезервыТоваровОстатки.БроньОстаток КАК БроньОстаток, РезервыТоваровОстатки.СуммаОстаток КАК СуммаОстаток ПОМЕСТИТЬ ВТРезерв ИЗ РегистрНакопления.РезервыТоваров.Остатки(, ) КАК РезервыТоваровОстатки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОстаткиТоваровОстатки.Товар, ОстаткиТоваровОстатки.Склад, ОстаткиТоваровОстатки.ОстатокТовараОстаток ПОМЕСТИТЬ ВТОстатки ИЗ РегистрНакопления.ОстаткиТоваров.Остатки КАК ОстаткиТоваровОстатки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТОстатки.Склад, ВТОстатки.Товар, ЕСТЬNULL(ВТОстатки.ОстатокТовараОстаток, 0) КАК ОстатокТовараОстаток, ЕСТЬNULL(ВТРезерв.РезервОстаток, 0) КАК РезервОстаток, ЕСТЬNULL(ВТРезерв.БроньОстаток, 0) КАК БроньОстаток, ЕСТЬNULL(ВТРезерв.СуммаОстаток, 0) КАК СуммаРезерва ИЗ ВТРезерв КАК ВТРезерв ЛЕВОЕ СОЕДИНЕНИЕ ВТОстатки КАК ВТОстатки ПО ВТРезерв.Товар = ВТОстатки.Товар ГДЕ ВТОстатки.Товар = &товар И ВТОстатки.Склад = &Склад И ВТРезерв.Склад = &Склад |
|||
1
Wobland
19.05.14
✎
16:41
|
после " ЛЕВОЕ СОЕДИНЕНИЕ " бросил вникать
|
|||
2
John83
19.05.14
✎
16:41
|
потому что левое соединение
|
|||
3
Classic
19.05.14
✎
16:43
|
потому что у тебя
И ВТРезерв.Склад = &Склад Накладывается на весь результат. Т.е. по факту внутреннее соединение получается |
|||
4
SH_tan
19.05.14
✎
16:44
|
(3) как надо?
|
|||
5
Classic
19.05.14
✎
16:52
|
(4)
В твоем случае лучше вообще ОБЪЕДИНИТЬ делать с последующей группировкой |
|||
6
SH_tan
19.05.14
✎
16:54
|
(5) сделал так и вроде нормально, но смущает код...
ВЫБРАТЬ РезервыТоваровОстатки.Товар, РезервыТоваровОстатки.Склад, РезервыТоваровОстатки.РезервОстаток КАК РезервОстаток, РезервыТоваровОстатки.БроньОстаток КАК БроньОстаток, РезервыТоваровОстатки.СуммаОстаток КАК СуммаОстаток ПОМЕСТИТЬ ВТРезерв ИЗ РегистрНакопления.РезервыТоваров.Остатки(, ) КАК РезервыТоваровОстатки ГДЕ РезервыТоваровОстатки.Товар = &товар И РезервыТоваровОстатки.Склад = &Склад ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОстаткиТоваровОстатки.Товар, ОстаткиТоваровОстатки.Склад, ОстаткиТоваровОстатки.ОстатокТовараОстаток ПОМЕСТИТЬ ВТОстатки ИЗ РегистрНакопления.ОстаткиТоваров.Остатки КАК ОстаткиТоваровОстатки ГДЕ ОстаткиТоваровОстатки.Товар = &товар И ОстаткиТоваровОстатки.Склад = &Склад ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТОстатки.Склад, ВТОстатки.Товар, ЕСТЬNULL(ВТОстатки.ОстатокТовараОстаток, 0) КАК ОстатокТовараОстаток, ЕСТЬNULL(ВТРезерв.РезервОстаток, 0) КАК РезервОстаток, ЕСТЬNULL(ВТРезерв.БроньОстаток, 0) КАК БроньОстаток, ЕСТЬNULL(ВТРезерв.СуммаОстаток, 0) КАК СуммаРезерва, ВТРезерв.Товар КАК Товар1, ВТРезерв.Склад КАК Склад1 ИЗ ВТОстатки КАК ВТОстатки ЛЕВОЕ СОЕДИНЕНИЕ ВТРезерв КАК ВТРезерв ПО ВТОстатки.Товар = ВТРезерв.Товар |
|||
7
Classic
19.05.14
✎
16:55
|
Теперь у тебя не будет показываться резерв, когда нулевой остаток
|
|||
8
SH_tan
19.05.14
✎
16:56
|
(7) почему?
|
|||
9
Wobland
19.05.14
✎
16:57
|
(8) по той же причине
|
|||
10
SH_tan
19.05.14
✎
16:58
|
соединение? (9)
|
|||
11
Classic
19.05.14
✎
16:58
|
Поставь полное.
Но тебе лучше объединение |
|||
12
SH_tan
20.05.14
✎
13:51
|
(11) сделал так. Но выводит две строчки а как сделать чтобы все данные в одной строчке были
ВЫБРАТЬ ОстаткиТоваровОстатки.Счет, ОстаткиТоваровОстатки.Товар, ОстаткиТоваровОстатки.Склад, ОстаткиТоваровОстатки.ОстатокТовара КАК ОстатокТовара, ОстаткиТоваровОстатки.РезервОстаток КАК РезервОстаток, ОстаткиТоваровОстатки.БроньОстаток КАК БроньОстаток, ОстаткиТоваровОстатки.СуммаОстаток КАК СуммаОстаток ИЗ (ВЫБРАТЬ РезервыТоваровОстатки.Товар КАК Товар, РезервыТоваровОстатки.Склад КАК Склад, СУММА(0) КАК ОстатокТовара, РезервыТоваровОстатки.Счет КАК Счет, СУММА(РезервыТоваровОстатки.РезервОстаток) КАК РезервОстаток, СУММА(РезервыТоваровОстатки.БроньОстаток) КАК БроньОстаток, СУММА(РезервыТоваровОстатки.СуммаОстаток) КАК СуммаОстаток ИЗ РегистрНакопления.РезервыТоваров.Остатки(, ) КАК РезервыТоваровОстатки СГРУППИРОВАТЬ ПО РезервыТоваровОстатки.Склад, РезервыТоваровОстатки.Счет, РезервыТоваровОстатки.Товар ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ОстаткиТоваровОстатки.Товар, ОстаткиТоваровОстатки.Склад, СУММА(ОстаткиТоваровОстатки.ОстатокТовараОстаток), СУММА(0), СУММА(0), СУММА(0), СУММА(0) ИЗ РегистрНакопления.ОстаткиТоваров.Остатки КАК ОстаткиТоваровОстатки СГРУППИРОВАТЬ ПО ОстаткиТоваровОстатки.Склад, ОстаткиТоваровОстатки.Товар) КАК ОстаткиТоваровОстатки ГДЕ ОстаткиТоваровОстатки.Товар = &товар И ОстаткиТоваровОстатки.Склад = &склад |
|||
13
SH_tan
20.05.14
✎
13:53
|
(1) как сделать чтобы одна строчка в Результате была? а не две
регистры разные по таблице |
|||
14
SH_tan
20.05.14
✎
13:55
|
сделал по совету ОБЪЕДИНИТЬ ВСЕ
|
|||
15
SH_tan
20.05.14
✎
14:00
|
есть кто тут???
|
|||
16
Ёпрст
20.05.14
✎
14:04
|
(13) поля в объединеных запросах должны совпадать, группировать нужно потом.
|
|||
17
Ёпрст
20.05.14
✎
14:05
|
ну и счет, во втором запросе, явно не число 0 (как у тебя сейчас), если че
|
|||
18
SH_tan
20.05.14
✎
14:17
|
(17) подскажи где
|
|||
19
SH_tan
20.05.14
✎
14:24
|
(17) хорошо, тогда как мне Счет во втором Запросе сделать?
|
|||
20
Ёпрст
20.05.14
✎
14:32
|
(19) если такого поля там нет, то как ты хочешь объединить их тогда ?
:)) |
|||
21
SH_tan
20.05.14
✎
14:54
|
(20) вместо не хватающих значений ставлю 0
а вот вместо не хватающей ссылки что ставить? в моем случае Счет |
|||
22
Ёпрст
20.05.14
✎
15:03
|
(21) а оно тебе надо ?
|
|||
23
Ёпрст
20.05.14
✎
15:04
|
ну и будет у тебя на выходе, так, например
Товар Счет Остаток Резерв Валенки 41 0 52 Валенки null 100 0 Тебе точно ЭТО надо ? |
|||
24
SH_tan
20.05.14
✎
15:06
|
(23) неее, сделал по другому, отказался от Счета, доперло, спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |