Re: Два однотипных условия в запросе. Возможно?
- From
- Nickita Lopukha (2:5020/400)
- To
- Gregory Konev (2:5054/37.63)
- Date
- 2005-05-31T12:33:40Z
- Area
- SU.DBMS.SQL
From: Nickita Lopukha <nckt@aircom.lv>
Привет, All и Gregory Konev.
Gregory Konev wrote:
> Пример. Есть таблица, куда вносится информация о проплатах (id, amount,
> pay_date, customer_id). Можно ли одним запросом с группировкой по полю
> "клиент" (customer_id) выбирать две суммы проплат, одна за один период
> времени, другая за другой (по каждому клиенту)?
В MSSQL можно таким, например, образом:
SELECT
customer_id,
ISNULL (SUM (CASE WHEN pay_date BETWEEN '1.1.2005' AND '31.1.2005' THEN amount ELSE 0 END), 0) AS sum1,
ISNULL (SUM (CASE WHEN pay_date BETWEEN '1.2.2005' AND '28.2.2005' THEN amount ELSE 0 END), 0) AS sum2,
FROM table
GROUP BY customer_id
Или группировку изменить таким хитрым образом, если возможно,
чтобы по две строки на клиента было.
А в других диалектах смотреть надоть.
--
С пожеланием всяческих успехов и прочих моральных благ,
Никита.
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5.3
* Origin: Talk.Mail.Ru (2:5020/400)
SEEN-BY: 46/50 50/203 520 450/159 186 1024 451/30 454/9 461/43 132 640 469/999
SEEN-BY: 4614/20 4616/3 4625/8 4627/10 5000/76 5000 5001/5001 5006/1 5007/1
SEEN-BY: 5010/53 70 5011/13 5012/23 5015/10 5019/31 5020/52 118 175 194 400
SEEN-BY: 5020/545 604 639 715 758 892 894 1042 1057 1200 1523 1604 1665 1909
SEEN-BY: 5020/1922 2013 2020 2238 4441 8383 5021/29 5025/3 750 5026/10 14 45
SEEN-BY: 5027/16 5029/32 5030/115 217 473 556 966 1063 1339 1900 5031/47
SEEN-BY: 5034/13 5035/38 5036/1 34 5040/47 5042/13 5047/43 5049/1 5051/15
SEEN-BY: 5054/1 8 9 28 35 37 45 63 67 5055/95 5057/1 5059/37 5060/88 5061/15
SEEN-BY: 5062/1 5066/18 5069/7 5070/1222 5079/23 5080/68 1003 5081/2 5082/6
SEEN-BY: 5083/21 5084/32 5085/13 5090/106 5092/1 5095/20 5099/4 133 6000/12
SEEN-BY: 6000/254 6009/1
PATH: 5020/400 4441 545 5054/1 37