Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как написать запрос?  [new]
Pervert
Member

Откуда:
Сообщений: 88
Есть таблица
CREATE TABLE #Result
(
Agent varchar(90),
Kontr varchar(90),
delay int,
MaxOrder decimal(18,2),
НомерДок int,
Дата datetime,
отгрузка numeric(16,2) ,
оплата numeric(16,2),
Сальдо numeric(16,2)
)

Если вывести простым select'oм получиться результат
Агент Контрагент дн отсрочка N Док Дата отгрузка оплата Сальдо
------ ------------- -- -------- ----- --------------------- ------ ----- ------
Бляхман Березка Загород 14 5000.00 23814 2011-03-30 00:00:00.000 0.00 0.24 17868.84
Бляхман Березка Загород 14 5000.00 23815 2011-04-04 00:00:00.000 0.00 7358.29 10510.55
Бляхман Березка Загород 14 5000.00 29105 2011-04-18 00:00:00.000 0.00 10510.35 0.20
Бляхман Березка Загород 14 5000.00 20 2011-04-22 00:00:00.000 9992.93 0.00 9993.13
Бляхман Березка Загород 14 5000.00 139 2011-04-22 00:00:00.000 0.20 0.00 9993.33
Бляхман Березка Загород 14 5000.00 30459 2011-04-30 00:00:00.000 0.00 0.20 9993.13
Бляхман Велес Ухтомс 14 5000.00 16 2011-03-02 00:00:00.000 16379.90 0.00 16379.90
Бляхман Велес Ухтомс 14 5000.00 25 2011-03-02 00:00:00.000 0.28 0.00 16380.18
Бляхман Велес Ухтомс 14 5000.00 9 2011-03-25 00:00:00.000 11198.94 0.00 27579.12
Бляхман Велес Ухтомс 14 5000.00 20 2011-03-25 00:00:00.000 0.40 0.00 27579.52
Бляхман Велес Ухтомс 14 5000.00 204 2011-03-29 00:00:00.000 -32.19 0.00 27547.33
Бляхман Велес Ухтомс 14 5000.00 24020 2011-03-30 00:00:00.000 0.00 0.68 27546.65
Бляхман Велес Ухтомс 14 5000.00 28115 2011-04-06 00:00:00.000 0.00 16380.46 11166.19
Бляхман Велес Ухтомс 14 5000.00 115 2011-04-08 00:00:00.000 17266.90 0.00 28433.09
Бляхман Велес Ухтомс 14 5000.00 29783 2011-04-22 00:00:00.000 0.00 10000.00 18433.09
Бляхман Велес Ухтомс 14 5000.00 32512 2011-05-03 00:00:00.000 0.00 18465.29 -32.20
Бляхман Велес Ухтомс 14 5000.00 137 2011-05-06 00:00:00.000 18620.50 0.00 18588.30
Бляхман Велес Ухтомс 14 5000.00 4 2011-05-13 00:00:00.000 11608.90 0.00 30197.20


А как выбрать данные что бы было так

Агент Контрагент дн отсрочка N Док Дата отгрузка оплата Сальдо
------ ------------- -- -------- ----- --------------------- ------ ----- ------
Бляхман Березка Загород 14 5000.00 20 2011-04-22 00:00:00.000 9992.93 0.00 9993.13
Бляхман Березка Загород 14 5000.00 139 2011-04-22 00:00:00.000 0.20 0.00 9993.33
Бляхман Березка Загород 14 5000.00 30459 2011-04-30 00:00:00.000 0.00 0.20 9993.13
Бляхман Велес Ухтомс 14 5000.00 137 2011-05-06 00:00:00.000 18620.50 0.00 18588.30
Бляхман Велес Ухтомс 14 5000.00 4 2011-05-13 00:00:00.000 11608.90 0.00 30197.20


т.е выбрать все накладные строки сумма отгрузки которых не превышает сальдо на последнюю дату агента.
19 май 11, 17:56    [10680326]     Ответить | Цитировать Сообщить модератору
 Re: Как написать запрос?  [new]
1d0
Member

Откуда: инфа100%
Сообщений: 2521
Pervert
Есть таблица
CREATE TABLE #Result
(
Agent varchar(90),
Kontr varchar(90),
delay int,
MaxOrder decimal(18,2),
НомерДок int,
Дата datetime,
отгрузка numeric(16,2) ,
оплата numeric(16,2),
Сальдо numeric(16,2)
)

Если вывести простым select'oм получиться результат
Агент Контрагент дн отсрочка N Док Дата отгрузка оплата Сальдо
------ ------------- -- -------- ----- --------------------- ------ ----- ------
Бляхман Березка Загород 14 5000.00 23814 2011-03-30 00:00:00.000 0.00 0.24 17868.84
Бляхман Березка Загород 14 5000.00 23815 2011-04-04 00:00:00.000 0.00 7358.29 10510.55
Бляхман Березка Загород 14 5000.00 29105 2011-04-18 00:00:00.000 0.00 10510.35 0.20
Бляхман Березка Загород 14 5000.00 20 2011-04-22 00:00:00.000 9992.93 0.00 9993.13
Бляхман Березка Загород 14 5000.00 139 2011-04-22 00:00:00.000 0.20 0.00 9993.33
Бляхман Березка Загород 14 5000.00 30459 2011-04-30 00:00:00.000 0.00 0.20 9993.13
Бляхман Велес Ухтомс 14 5000.00 16 2011-03-02 00:00:00.000 16379.90 0.00 16379.90
Бляхман Велес Ухтомс 14 5000.00 25 2011-03-02 00:00:00.000 0.28 0.00 16380.18
Бляхман Велес Ухтомс 14 5000.00 9 2011-03-25 00:00:00.000 11198.94 0.00 27579.12
Бляхман Велес Ухтомс 14 5000.00 20 2011-03-25 00:00:00.000 0.40 0.00 27579.52
Бляхман Велес Ухтомс 14 5000.00 204 2011-03-29 00:00:00.000 -32.19 0.00 27547.33
Бляхман Велес Ухтомс 14 5000.00 24020 2011-03-30 00:00:00.000 0.00 0.68 27546.65
Бляхман Велес Ухтомс 14 5000.00 28115 2011-04-06 00:00:00.000 0.00 16380.46 11166.19
Бляхман Велес Ухтомс 14 5000.00 115 2011-04-08 00:00:00.000 17266.90 0.00 28433.09
Бляхман Велес Ухтомс 14 5000.00 29783 2011-04-22 00:00:00.000 0.00 10000.00 18433.09
Бляхман Велес Ухтомс 14 5000.00 32512 2011-05-03 00:00:00.000 0.00 18465.29 -32.20
Бляхман Велес Ухтомс 14 5000.00 137 2011-05-06 00:00:00.000 18620.50 0.00 18588.30
Бляхман Велес Ухтомс 14 5000.00 4 2011-05-13 00:00:00.000 11608.90 0.00 30197.20


А как выбрать данные что бы было так

Агент Контрагент дн отсрочка N Док Дата отгрузка оплата Сальдо
------ ------------- -- -------- ----- --------------------- ------ ----- ------
Бляхман Березка Загород 14 5000.00 20 2011-04-22 00:00:00.000 9992.93 0.00 9993.13
Бляхман Березка Загород 14 5000.00 139 2011-04-22 00:00:00.000 0.20 0.00 9993.33
Бляхман Березка Загород 14 5000.00 30459 2011-04-30 00:00:00.000 0.00 0.20 9993.13
Бляхман Велес Ухтомс 14 5000.00 137 2011-05-06 00:00:00.000 18620.50 0.00 18588.30
Бляхман Велес Ухтомс 14 5000.00 4 2011-05-13 00:00:00.000 11608.90 0.00 30197.20


т.е выбрать все накладные строки сумма отгрузки которых не превышает сальдо на последнюю дату агента.



условие отгрузка>сальдо?
19 май 11, 18:02    [10680354]     Ответить | Цитировать Сообщить модератору
 Re: Как написать запрос?  [new]
Pervert
Member

Откуда:
Сообщений: 88
Да
19 май 11, 19:35    [10680695]     Ответить | Цитировать Сообщить модератору
 Re: Как написать запрос?  [new]
broi
Member

Откуда:
Сообщений: 5
select * from #Result where отгрузка>Сальдо
20 май 11, 10:46    [10682609]     Ответить | Цитировать Сообщить модератору
 Re: Как написать запрос?  [new]
broi
Member

Откуда:
Сообщений: 5
select * from #Result where отгрузка>Сальдо
20 май 11, 10:51    [10682658]     Ответить | Цитировать Сообщить модератору
 Re: Как написать запрос?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
broi, ну и ещё разок для пущей надежности
20 май 11, 10:53    [10682674]     Ответить | Цитировать Сообщить модератору
 Re: Как написать запрос?  [new]
broi
Member

Откуда:
Сообщений: 5
Лагииииии
20 май 11, 10:54    [10682679]     Ответить | Цитировать Сообщить модератору
 Re: Как написать запрос?  [new]
Pervert
Member

Откуда:
Сообщений: 88
И что она мне выведет... все строки у которых сальдо меньше отгрузки.., а мне нужно все строки которые меньше сальдо в последнем числе...
20 май 11, 11:18    [10682865]     Ответить | Цитировать Сообщить модератору
 Re: Как написать запрос?  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
SELECT *
FROM #Result R
WHERE R.отгрузка<=
 (
  SELECT TOP 1 RR.Сальдо
  FROM #Result RR
  WHERE RR.Agent=R.Agent AND RR.Kontr=R.Kontr ORDER BY RR.Дата DESC
 );
??
20 май 11, 11:34    [10683000]     Ответить | Цитировать Сообщить модератору
 Re: Как написать запрос?  [new]
Pervert
Member

Откуда:
Сообщений: 88
Не то... тут просто все отгрузи кторый меньше последнего сальдо, а должны только те отгрузки сумма которых меньше сальдо
20 май 11, 17:45    [10686327]     Ответить | Цитировать Сообщить модератору
 Re: Как написать запрос?  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Pervert
Не то... тут просто все отгрузи кторый меньше последнего сальдо, а должны только те отгрузки сумма которых меньше сальдо
Пойду убьюсь об стену!

А где Ваш вариант? Или я что-то пропустил
20 май 11, 17:54    [10686394]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить