powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите настроить фильтрацию по таблице
2 сообщений из 2, страница 1 из 1
Помогите настроить фильтрацию по таблице
    #39896713
Sadmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток, помогите с таблицей
Нужен select, который для указанной даты @Date будет выдавать для каждой бумаги сумму сделок покупки и сумму сделок продажи

DealDate Дата сделки (без времени)
Security Код ценной бумаги
DealType Тип сделки 0 – buy, 1 – sell
Qty Сумма сделки
Есть таблица tDeal:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
DealDate   |  Security  |   DealType  |   Qty
_______________________________________________

21.05.2007 |    Sec1    |      1      |    1

21.05.2007 |    Sec1    |      1      |    2

21.05.2007 |    Sec2    |      0      |    4

21.05.2007 |    Sec2    |      1      |    8

21.05.2007 |    Sec3    |      0      |    16

22.05.2007 |    Sec1    |      1      |    5

22.05.2007 |    Sec3    |      0      |    7

При запросе @date = '21.05.2007’ select должен выдать результат:

Код: plaintext
1.
2.
3.
4.
5.
6.
ЦБ   |   Сумма покупок  |  Сумма продаж

Sec1 |        0         |        3

Sec2 |        4         |        8

Sec3 |        16        |        0
...
Рейтинг: 0 / 0
Помогите настроить фильтрацию по таблице
    #39896719
londinium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
USE MASTER 
GO

WITH CTE AS
(
  SELECT '20070521'AS DEALDATE,'SEC1'AS SECURITYY,1 AS DEALTYPE,1 AS QTY
   UNION ALL
  SELECT '20070521'AS DEALDATE,'SEC1'AS SECURITYY,1 AS DEALTYPE,2 AS QTY 
   UNION ALL
  SELECT '20070521'AS DEALDATE,'SEC2'AS SECURITYY,0 AS DEALTYPE,4 AS QTY 
   UNION ALL
  SELECT '20070521'AS DEALDATE,'SEC2'AS SECURITYY,1 AS DEALTYPE,8 AS QTY   
   UNION ALL
  SELECT '20070521'AS DEALDATE,'SEC3'AS SECURITYY,0 AS DEALTYPE,16 AS QTY    
   UNION ALL
  SELECT '20070522'AS DEALDATE,'SEC1'AS SECURITYY,1 AS DEALTYPE,5 AS QTY 
   UNION ALL
  SELECT '20070522'AS DEALDATE,'SEC3'AS SECURITYY,0 AS DEALTYPE,7 AS QTY  
   
)
SELECT C.SECURITYY,
SUM(CASE WHEN C.DEALTYPE=0 THEN C.QTY ELSE 0 END)AS SELL_SUMM,
SUM(CASE WHEN C.DEALTYPE=1 THEN C.QTY ELSE 0 END)AS BUYSUMM
FROM CTE AS C
WHERE C.DEALDATE='20070521'
GROUP BY C.SECURITYY
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите настроить фильтрацию по таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]