powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Схема решений задачи
4 сообщений из 4, страница 1 из 1
Схема решений задачи
    #39748306
El_Ninio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДД. Как решить такие задачи.

Табл1

1-айди услуги
2-дата выпол услуги
3 Тариф
4-айди документа

1 01.12.2018 20 1
2 01.12.2018 21 1
3 02.12.2018 22 1
4 03.12.2018 22 1
5 04.12.2018 23 1
6 04.12.2018 21 1
7 04.12.2018 25 1

Табл2

1-Айди тарифа
2-Цена

20 2.0
21 10.0
22 20.0
23 5.0
25 8.0

результирующая таблица получена отсеиванием данных с первой таблицы


1 01.12.2018 20 1
3 02.12.2018 22 1
4 03.12.2018 22 1
5 04.12.2018 23 1

Как должна быть схема решения?
1. Сначала соединяешь две таблицы
2. Группируешь по дате
3 Выбираешь минимальную?

или совсем другая должна быть?


Примерно как должен быть запрос.
...
Рейтинг: 0 / 0
Схема решений задачи
    #39748315
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
El_Ninio,

По вашему мнению тут возможны варианты?
...
Рейтинг: 0 / 0
Схема решений задачи
    #39748325
Massa52
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
El_Ninio,
А задача то какая - подогнать под результат?
Код: 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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
DECLARE @usluga AS TABLE (idu int, dataIspolneniya Date, idt int, iddok int)
INSERT @usluga (idu, dataIspolneniya, idt, iddok) VALUES
(1,	'20181201',	20,	1),
(2,	'20181201',	21,	1),
(3,	'20181202',	22,	1),
(4,	'20181203',	22,	1),
(5,	'20181204',	23,	1),
(6,	'20181204',	21,	1),
(7,	'20181204',	25,	1);
 
DECLARE @tarif AS TABLE (idt int, price money)
INSERT @tarif (idt,price) VALUES
(20,	2.0	),
(21,	10.0),	
(22,	20.0),	
(23,	5.0	),
(25,	8.0	)

--1. Сначала соединяешь две таблицы
SELECT idu, dataIspolneniya, u.idt, iddok, t.idt,price FROM @usluga u INNER JOIN @tarif t ON u.idt = t.idt 
-- получаем
--1	2018-12-01	20	1	20	2.00
--2	2018-12-01	21	1	21	10.00
--3	2018-12-02	22	1	22	20.00
--4	2018-12-03	22	1	22	20.00
--5	2018-12-04	23	1	23	5.00
--6	2018-12-04	21	1	21	10.00
--7	2018-12-04	25	1	25	8.00
--2. Группируешь по дате
SELECT MIN(idu) minidu, dataIspolneniya, MAX(price) AS maxPrice, MIN(price) minPrice FROM @usluga u INNER JOIN @tarif t ON u.idt = t.idt 
GROUP BY dataIspolneniya
-- получаем
--minidu	dataIspolneniya	maxPrice	minPrice 
--1			2018-12-01		10.00		2.00
--3			2018-12-02		20.00		20.00
--4			2018-12-03		20.00		20.00
--5			2018-12-04		10.00		5.00


...
Рейтинг: 0 / 0
Схема решений задачи
    #39748406
El_Ninio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Massa52, удалить оставляя только эту.

-- получаем
--minidu dataIspolneniya maxPrice minPrice
--1 2018-12-01 10.00 2.00
--3 2018-12-02 20.00 20.00
--4 2018-12-03 20.00 20.00
--5 2018-12-04 10.00 5.00
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Схема решений задачи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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