|
гуру sql можно ли решить это запросом? | ☑ | ||
---|---|---|---|---|
0
Gorr
11.04.14
✎
14:02
|
На входе имее 2 таблички заказы и продажи:
1я табличка "заказы" Товар Резерв 5 Товар 5 2я табличка "продажи" товар 8 на выходе надо получить что продано из резерва/не резерва. при этом считать, что сначала продается резерв. таким образом в примере результат должен быть: товар 5(резерв) 3(не резерв) |
|||
1
ИА1С
11.04.14
✎
14:05
|
Считать только на лету. Ты это в скуле хочешь)))? Или можно запросом 1С?
|
|||
2
shuhard
11.04.14
✎
14:08
|
(0) что-то мешает тупо вычесть одно из другого
и использовать Объединить все ? |
|||
3
Gorr
11.04.14
✎
14:10
|
(2) пример в студию
|
|||
4
_fvadim
11.04.14
✎
14:11
|
(3) лентяй, напрягись маленько
|
|||
5
Ненавижу 1С
гуру
11.04.14
✎
14:12
|
select
Продажи.Товар, case when Продажи.Количество>=coalesce(Заказы.Количество,0) then coalesce(Заказы.Количество,0) else Продажи.Количество end as Резерв, case when Продажи.Количество>=coalesce(Заказы.Количество,0) then Продажи.Количество-coalesce(Заказы.Количество,0) else 0 end as НеРезерв from Продажи left join Заказа По (Продажи.Товар=Заказы.Товар) |
|||
6
shuhard
11.04.14
✎
14:12
|
(5) вот за что тебя форум ценит и уважает =)
|
|||
7
Ёпрст
11.04.14
✎
14:15
|
Ждём следующий вопрос, как реализовать coalesce в снеговике
:))) |
|||
8
КонецЦикла
11.04.14
✎
14:22
|
Надо применить предварительную обработку данных
Кто мешает поместить в таблицу наименьшее кол-во от товара в резерве/не резерве, вот и выйдет продажа резерва, фторой столбец - разница |
|||
9
Gorr
11.04.14
✎
14:52
|
(5) не катит - возвращает 2 строки. если соединение то уж внутреннее. кроме реализации функции мин в запросе ничего нового в запросе не увидел.
читайте внимательнее задание должно вернуть 1 строку: товар 5(резерв) 3(не резерв) (3) сам не лентяй? пример в студию!!! |
|||
10
Gorr
11.04.14
✎
14:53
|
для удобства тестирования задания в консоли:
ВЫБРАТЬ "товар" КАК товар, ИСТИНА КАК резерв, 5 КАК кол ПОМЕСТИТЬ заказы ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "товар", ЛОЖЬ, 5 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ "товар" КАК товар, 8 КАК кол ПОМЕСТИТЬ продажи ; |
|||
11
Ненавижу 1С
гуру
11.04.14
✎
14:53
|
(9) соединение левое и возвращает одну строку, не ври
|
|||
12
Ненавижу 1С
гуру
11.04.14
✎
14:54
|
(10)
ИСТИНА КАК резерв что это за куйня? |
|||
13
Gorr
11.04.14
✎
14:54
|
(10) такого условие означает что да, действительно заказано из резерва. что непонятного?
|
|||
14
Gorr
11.04.14
✎
14:55
|
+13 булево
|
|||
15
_fvadim
11.04.14
✎
14:56
|
(13) на предыдущем допросе вы рисовали другую схему
|
|||
16
Gorr
11.04.14
✎
14:56
|
(11) хоть левое хоть внутреннее. если в одной таблице две строки, а другой 1 то вернет две!
|
|||
17
Ненавижу 1С
гуру
11.04.14
✎
14:56
|
(13) непонятно как ты условия задачи пишешь
по делу: измени в запросе из (5) последнюю строку на left join Заказы by (Продажи.Товар=Заказы.Товар and Заказы.Резерв) |
|||
18
Gorr
11.04.14
✎
15:01
|
(17) такое ощущение что вы задачу не поняли... запрос должен распределить количество реализации на две строки из заказа.
из первой удет 5 из второй уйдет остаток 3. |
|||
19
Ненавижу 1С
гуру
11.04.14
✎
15:02
|
(18) это я не понял?
"не катит - возвращает 2 строки" "запрос должен распределить количество реализации на две строки" |
|||
20
МойКодУныл
11.04.14
✎
15:03
|
(19) не пытайся.=) Он ждет готового решения своей задачи в том виде, который себе представляет:)
|
|||
21
МойКодУныл
11.04.14
✎
15:04
|
(18)
А так? ВЫБРАТЬ "товар" КАК товар, ИСТИНА КАК резерв, 5 КАК кол ПОМЕСТИТЬ заказы ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "товар", ЛОЖЬ, 5 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ "товар" КАК товар, 8 КАК кол ПОМЕСТИТЬ продажи ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ заказы.товар, СУММА(ВЫБОР КОГДА заказы.резерв ТОГДА заказы.кол ИНАЧЕ 0 КОНЕЦ) КАК Резерв, СУММА(ВЫБОР КОГДА НЕ заказы.резерв ТОГДА заказы.кол ИНАЧЕ 0 КОНЕЦ) КАК Сток ПОМЕСТИТЬ ТоварыРезервСток ИЗ заказы КАК заказы СГРУППИРОВАТЬ ПО заказы.товар ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Заказы ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ продажи.товар, СУММА(ВЫБОР КОГДА ТоварыРезервСток.Резерв > продажи.кол ТОГДА продажи.кол ИНАЧЕ ТоварыРезервСток.Резерв КОНЕЦ) КАК СРезерва, СУММА(ВЫБОР КОГДА ТоварыРезервСток.Резерв > продажи.кол ТОГДА 0 ИНАЧЕ продажи.кол - ТоварыРезервСток.Резерв КОНЕЦ) КАК Свободного ИЗ продажи КАК продажи ЛЕВОЕ СОЕДИНЕНИЕ ТоварыРезервСток КАК ТоварыРезервСток ПО продажи.товар = ТоварыРезервСток.товар СГРУППИРОВАТЬ ПО продажи.товар |
|||
22
Gorr
11.04.14
✎
15:12
|
(18) извиняюсь. все верно!
всем спасибо! |
|||
23
Gorr
11.04.14
✎
15:12
|
+22 к (19)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |