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

Откуда:
Сообщений: 96
Есть таблица 7 милионов строк в Ms SQL.
В таблице три столбца.
1)Месяц
2)Компании
3)Город Отправитель
4)Город Получатель
В таблице содержится информация по трём компаниям за три месяца в какие города происходили перевозки.
Мне необходимо создать запрос в MS SQL,в котором будет видно в какие города в каком месяце ДОБАВИЛИСЬ перевозки.
В примере я создал сводную таблицу,но там видно все города в которые происходили перевозки,а мне нужны только новые города в которые поизошли или нооборот не перевозили перевозкии в 2009-07 месяце по отношению к 2009-06 и 2009-08 по отношению к 2009-07 соответственно.
Gjlcrf;bnt

К сообщению приложен файл (222222222222222222222222222.rar - 14Kb) cкачать
8 сен 09, 14:38    [7631918]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
Коллега, а что у вас не получилось? Вроде бы задание крайне простое (я бы сказал лабораторная номер №1 курса БД).
8 сен 09, 14:42    [7631952]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
iljy
Member

Откуда:
Сообщений: 8711
osh62,

и что не получается?
select Town, max(case when date >= '20090601' and date < '20090701' then 1 else 0 end) b06,
max(case when date >= '20090701' and date < '20090801' then 1 else 0 end) b07,
max(case when date >= '20090801' and date < '20090901' then 1 else 0 end) b08
from table
group by Town

и смотрите для каких городов что изменилось.
8 сен 09, 14:50    [7632020]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
osh62
Member

Откуда:
Сообщений: 96
У меня получился результат,но только мне не понятно в каком месяце и в какой компании добавились или убавились города

К сообщению приложен файл (222222222222222222222222222.rar - 14Kb) cкачать
8 сен 09, 16:06    [7632530]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
iljy
Member

Откуда:
Сообщений: 8711
osh62,

да, про компанию запыл. но добавить по ней группировку - так сложно?

select Company,Town,
   max(case when date >= '20090601' and date < '20090701' then 1 else 0 end) b06,
   max(case when date >= '20090701' and date < '20090801' then 1 else 0 end) b07,
   max(case when date >= '20090801' and date < '20090901' then 1 else 0 end) b08
from table
group by Company,Town

3 флага, на каждый месяц - была ли доставка в данный город для данной компании.
8 сен 09, 16:09    [7632550]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
osh62
Member

Откуда:
Сообщений: 96
Прикрепляю ПринтСкрин
8 сен 09, 16:11    [7632567]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
osh62
Member

Откуда:
Сообщений: 96


К сообщению приложен файл (1234567891011121314151617.rar - 98Kb) cкачать
8 сен 09, 16:12    [7632573]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
osh62
Member

Откуда:
Сообщений: 96
Спасибо большое,
я просто новичек в MS SQL
8 сен 09, 16:14    [7632581]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
osh62
Member

Откуда:
Сообщений: 96
Я так понимаю если 1 то была перевозка если 0 то не было?
Если так то у меня же ещё и столбец Город получатель есть,как по нему смотреть?
8 сен 09, 16:30    [7632718]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
iljy
Member

Откуда:
Сообщений: 8711
osh62
Я так понимаю если 1 то была перевозка если 0 то не было?
Если так то у меня же ещё и столбец Город получатель есть,как по нему смотреть?


в какие города в каком месяце

Town - это город-получатель.
8 сен 09, 16:33    [7632736]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
osh62
Member

Откуда:
Сообщений: 96
А Город Отправитель тогда что?
Мне нужно просматривать и то и то.
И я щас сделал у меня везде нули,а города в таблице убавлялись и прибавлялись.
8 сен 09, 16:36    [7632758]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
iljy
Member

Откуда:
Сообщений: 8711
osh62,

тогда первое - давайте тестовые данный и скрипты для таблицы, и второе - подробнее описывайте логику - что именно и как надо получить, хотя бы - надо просто данные - были перевозки по городу или нет или отдельно ввоз, отдельно вывоз.
8 сен 09, 16:38    [7632770]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
osh62
Member

Откуда:
Сообщений: 96
В моём первом письме прикреплена таблица.
В таблице данные по трём компаниям за три месяца,откуда и куда эти компании осуществляют перевозки.(это лишь часть таблицы т.к.
Например компания Logistik в 2009-06 возила из Городов Отправителей:
1)Анапа
2)Архангельск
3)Астрахань
4)Нижний Новгород
в 2009-07
Из Городов отправителей:
1)Апшеронск
2)Архангельск
3)Астрахань
4)Нижний новгород
в 2009-08
Из Городов отправителей:
1)Анапа
2)Архангельск
3)Астрахань
4)Барнаул

Вот мне нужно этот момент и уловить что компания Logistik 2009-07 перестала возить из Анапы и стала возить в Апшеронск,а 2008-08 перестала возить в Нижний новгород и стала возить в Барнаул.
8 сен 09, 17:14    [7632991]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
iljy
Member

Откуда:
Сообщений: 8711
osh62,

Рекомендации по оформлению сообщений в форуме
вы знаете что такое скрипты и тестовые данные?

select Company, Town,
	max(case when N = 1 and date >= '20090601' and date < '20090701' then 1 else 0 end) from06,
	max(case when N = 2 and date >= '20090601' and date < '20090701' then 1 else 0 end) to06,
	max(case when N = 1 and date >= '20090701' and date < '20090801' then 1 else 0 end) from07,
	max(case when N = 2 and date >= '20090701' and date < '20090801' then 1 else 0 end) to07,
	max(case when N = 1 and date >= '20090801' and date < '20090901' then 1 else 0 end) from08,
	max(case when N = 2 and date >= '20090801' and date < '20090901' then 1 else 0 end) to08
from
(
	select 
		Company, case N when 1 then Town_From else Town_to end Town, N, date	
	from
	Table t1 cross join (select 1 N union all select 2) t2
) t
group by Company, Town
проверить смогу если таки выложите скрипты.
8 сен 09, 17:22    [7633047]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
osh62
Member

Откуда:
Сообщений: 96
А скрипты это что?
8 сен 09, 17:33    [7633125]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
osh62
Member

Откуда:
Сообщений: 96
А возможно вам позвонить на мобильный?
к сожалению я много не понимаю
Например что в данном случае
Town:Город Отправитель или Город получатель?или ещё что-нить,
Data: это я так понимаю названи таблицы или Что-нить другое,
Table,
N,
t,
t1,
t2,
from06,
to06
и.т.д.
8 сен 09, 18:24    [7633445]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
osh62
А скрипты это что?

https://www.sql.ru/forum/actualthread.aspx?tid=127456 п.4 и п.6
8 сен 09, 20:08    [7633911]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
osh62
Member

Откуда:
Сообщений: 96
В таблице данные по трём компаниям за три месяца,откуда и куда эти компании осуществляют перевозки.(это лишь часть таблицы т.к.
Например компания Logistik в 2009-06 возила из Городов Отправителей:
1)Анапа
2)Архангельск
3)Астрахань
4)Нижний Новгород
в 2009-07
Из Городов отправителей:
1)Апшеронск
2)Архангельск
3)Астрахань
4)Нижний новгород
в 2009-08
Из Городов отправителей:
1)Анапа
2)Архангельск
3)Астрахань
4)Барнаул

Вот мне нужно этот момент и уловить что компания Logistik 2009-07 перестала возить из Анапы и стала возить в Апшеронск,а 2008-08 перестала возить в Нижний новгород и стала возить в Барнаул.
И так же с городами Получателями

К сообщению приложен файл (222222222222222222222222222.rar - 14Kb) cкачать
9 сен 09, 12:52    [7636573]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
osh62
В таблице данные по трём компаниям за три месяца,откуда и куда эти компании осуществляют перевозки.(это лишь часть таблицы т.к.

Вы умеете читать Рекомендации по оформлению сообщений ?
9 сен 09, 12:54    [7636597]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
osh62
Member

Откуда:
Сообщений: 96
Я прочитал,что не так?
Я прикрепил,таблицу
Описал задачу
9 сен 09, 12:57    [7636625]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
osh62
Я прочитал,что не так?
Я прикрепил,таблицу
Описал задачу

Вы прикрепили excel файл, а не таблицу и не скрипт ее создания и заполнения
По всей видимости вы читали Рекомендации по оформлению какого то друго-го форума
9 сен 09, 13:06    [7636693]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
osh62
Я прочитал,что не так?
Я прикрепил,таблицу
Описал задачу


Пример есть таблица:

declare @t table (id int)
--В ней имеются данные:

declare @t table (id int)

INSERT @t(id)
SELECT 1 UNION ALL
SELECT 2 UNION ALL
SELECT 1 UNION ALL
SELECT 4

SELECT @@VERSION

Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86)   Feb  9 2007 22:47:07   Copyright (c) 1988-2005
Microsoft Corporation  Standard Edition on Windows NT 5.1 (Build 2600: Service Pack 3) 

Вот хотя бы так...
9 сен 09, 13:25    [7636823]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
Нужно получить все нечетные значения id > 0 без повторов, отсортированные по возрастанию…

Вот как то так оформите…
9 сен 09, 13:26    [7636830]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
osh62
Member

Откуда:
Сообщений: 96
Спасибо большое
9 сен 09, 13:50    [7636963]     Ответить | Цитировать Сообщить модератору
 Re: Поиск и изменение в MS SQL  [new]
osh62
Member

Откуда:
Сообщений: 96
9 сен 09, 18:58    [7638951]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить