powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сумма строк одной таблицы по разным условиям
4 сообщений из 4, страница 1 из 1
Сумма строк одной таблицы по разным условиям
    #39844914
Chpoki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, подскажите, пожалуйста решение.
Есть две таблицы в каждой из которых несколько разных типов записей.
В первой таблице два типа записей. Во второй таблице три типа записей.
Нужно в одном запросе получить:
1. По типу записей №1 из таблицы №1 сумма записей типа записей №1 из таблицы №2.
2. По типу записей №1 из таблицы №1 сумма записей типа записей №2 из таблицы №2.
3. По типу записей №1 из таблицы №1 сумма записей типа записей №3 из таблицы №2.
4. По типу записей №2 из таблицы №1 сумма записей типа записей №1 из таблицы №2.
5. По типу записей №2 из таблицы №1 сумма записей типа записей №2 из таблицы №2.
6. По типу записей №2 из таблицы №1 сумма записей типа записей №3 из таблицы №2.
Пытался использовать запрос например:
SELECT COUNT(distinct CASE WHEN (A.Type = '1' AND B.Type = '1' ) then '1' ELSE NULL END) AS 'Тип 1'
FROM Table1 AS A
JOIN Table2 B
ON A.Id=B.Id

но не хватает навыков и знаний.
Заранее спасибо!
...
Рейтинг: 0 / 0
Сумма строк одной таблицы по разным условиям
    #39844959
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Сумма строк одной таблицы по разным условиям
    #39844982
Chpoki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Chpoki,Microsoft SQL Server Management Studio 14.0.17177.0
Использую скрипт:
SELECT A.Name, CASE WHEN B.Type=3 then '3' WHEN B.Type=2 then '2' END as 'Тип', COUNT(distinct C.Id),
CASE WHEN T.ModelId = 1 then COUNT(distinct T.Id)END as '1',
CASE WHEN T.ModelId = 2 then COUNT(distinct T.Id)END as '2',
CASE WHEN T.ModelId = 3 then COUNT(distinct T.Id)END as '3'
FROM [Table1] AS A
LEFT JOIN [Table2] AS B
LEFT JOIN [Table3] AS C
WHERE B.Type='3' OR B.Type='2' AND C.ModelId like '1' OR C.ModelId like '2' OR C.ModelId like '3'
GROUP BY A.Name, B.Type, C.ModelId
ORDER BY A.Name ASC
В результате должен быть список имен (A.Name) которые бывают двух типов (B.Type 2 и B.Type 3) с указанием суммы единиц каждой модели, всего три (T.ModelId) и если нет, то пусто.
...
Рейтинг: 0 / 0
Сумма строк одной таблицы по разным условиям
    #39845250
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chpoki,
Бог его знает, что Вам надо.
Вот для начала
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT 
	A.Name
	, A.Type
	, B.Type
	, Count(*)
FROM 
	Table1 AS A
JOIN Table2 B ON A.Id=B.Id
Group By
	A.Name
	, A.Type
	, B.Type
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сумма строк одной таблицы по разным условиям
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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