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

Откуда:
Сообщений: 122
всем привет! есть запрос

select substring(err, 0, 99) as oshibka, count (err) as d20042015
from NtestflkN
where data='20-04-2015.xls'
group by substring(err, 0, 99);

который выводит количество ошибок по видам за 20.04.2015 из базы NtestflkN. Как просто добавить справа столбец с ошибками за другое число, которые есть в базе? т.е. чтобы была таблица видаЖ

ошибка 20.04.2015 10.05.2015 10.06.2015
нет записи 1878 567 675
(вид) ( количество )

т.е. получаеться если делать через join - необходимо условие объединения, а оно не нужно. если через union - все в одну таблицу вставит.
6 июл 15, 17:32    [17858644]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц. не могу разобраться.  [new]
СТУДЕНТ123
Guest
CASE для каждого "нужного" Вам столбца не предлогать?, или Вы за ранее незнаете количество столбцов?

Вообще напишите более доходчево вопрос (а лучше еще и тестовые данные оформить), а то и ответы будут поверхностные =/
6 июл 15, 17:39    [17858663]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц. не могу разобраться.  [new]
Romanov-krd
Member

Откуда:
Сообщений: 122
СТУДЕНТ123,

количество столбцов знаю, всего 5. один тип ошибки+ 4 столбца по дате

посчитать количество ошибок по виду и сгруппировать это количество по столбцу дата, чтоб было указано например:
ошибка 1 - на 1.07.2015 количество 678, на 1.08.2015 количество 456
ошибка 2 - на 1.07.2015 количество 674, на 1.08.2015 количество 345

. на счет case, сейчас в интернете посмотрю, еще его не изучал.
6 июл 15, 17:58    [17858756]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц. не могу разобраться.  [new]
СТУДЕНТ123
Guest
Если я Вас правильно понял(не имею столь богатого опыта на данном ресурсе - форуме):

пример для 3х дат и 3х типов ошибок.

DECLARE @ERROR_TABLE TABLE (TYPE_ERROR VARCHAR(10), DATE_ERROR DATETIME)

INSERT INTO @ERROR_TABLE
				SELECT 'ERROR 1', '20150101'	UNION ALL		SELECT 'ERROR 1', '20150101'
UNION ALL		SELECT 'ERROR 1', '20150101'	UNION ALL		SELECT 'ERROR 1', '20150101'
UNION ALL		SELECT 'ERROR 2', '20150101'	UNION ALL		SELECT 'ERROR 2', '20150101'
UNION ALL		SELECT 'ERROR 2', '20150101'	UNION ALL		SELECT 'ERROR 2', '20150101'
UNION ALL		SELECT 'ERROR 2', '20150101'	UNION ALL		SELECT 'ERROR 2', '20150101'
UNION ALL		SELECT 'ERROR 2', '20150101'	UNION ALL		SELECT 'ERROR 3', '20150101'
UNION ALL		SELECT 'ERROR 3', '20150101'	UNION ALL		SELECT 'ERROR 3', '20150101'
UNION ALL		SELECT 'ERROR 1', '20150201'	UNION ALL		SELECT 'ERROR 1', '20150201'
UNION ALL		SELECT 'ERROR 2', '20150201'	UNION ALL		SELECT 'ERROR 2', '20150201'
UNION ALL		SELECT 'ERROR 2', '20150201'	UNION ALL		SELECT 'ERROR 2', '20150201'
UNION ALL		SELECT 'ERROR 2', '20150201'	UNION ALL		SELECT 'ERROR 2', '20150201'
UNION ALL		SELECT 'ERROR 2', '20150201'	UNION ALL		SELECT 'ERROR 3', '20150301'
UNION ALL		SELECT 'ERROR 3', '20150301'	UNION ALL		SELECT 'ERROR 3', '20150301'

-- SELECT TYPE_ERROR,DATE_ERROR  FROM @ERROR_TABLE

--------------------------------------------------

SELECT	TYPE_ERROR, SUM(CASE WHEN DATE_ERROR = '20150101' THEN 1 ELSE 0 END) AS [20150101],
					SUM(CASE WHEN DATE_ERROR = '20150201' THEN 1 ELSE 0 END) AS [20150201],
					SUM(CASE WHEN DATE_ERROR = '20150301' THEN 1 ELSE 0 END) AS [20150301]
FROM	@ERROR_TABLE
GROUP BY TYPE_ERROR


Это вообще не понимаю зачем Вам, смысл в данной функции уместен? substring(err, 0, 99);
6 июл 15, 18:35    [17858903]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц. не могу разобраться.  [new]
Romanov-krd
Member

Откуда:
Сообщений: 122
СТУДЕНТ123
Если я Вас правильно понял(не имею столь богатого опыта на данном ресурсе - форуме):

пример для 3х дат и 3х типов ошибок.


SELECT TYPE_ERROR, SUM(CASE WHEN DATE_ERROR = '20150101' THEN 1 ELSE 0 END) AS [20150101],
SUM(CASE WHEN DATE_ERROR = '20150201' THEN 1 ELSE 0 END) AS [20150201],
SUM(CASE WHEN DATE_ERROR = '20150301' THEN 1 ELSE 0 END) AS [20150301]
FROM @ERROR_TABLE
GROUP BY TYPE_ERROR

[/src]

Это вообще не понимаю зачем Вам, смысл в данной функции уместен? substring(err, 0, 99);


пример для 3х дат и 3х типов ошибок. - Да. это то что нужно!!!
Это вообще не понимаю зачем Вам, смысл в данной функции уместен? substring(err, 0, 99) - да, она не нужна!!! просто название столбца вместо функции надо ставить.
7 июл 15, 11:59    [17861381]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц. не могу разобраться.  [new]
Romanov-krd
Member

Откуда:
Сообщений: 122
СТУДЕНТ123,

спасибо огромное!!!
7 июл 15, 12:00    [17861390]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить