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

Дата
Изделие
Изготовитель
Масса
.....и т.д.

Необходимо определить по-сменно:
какое Изделие сделал определенный Изготовитель
(кол-во штук,общую массу всех изделий и т.д.)
пишу...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
declare @d1 datetime,
           @d2 datetime
set @d1='время начала смены'
set @d1='время конца смены'

select distinct [Изделие], sum([Масса], [Изготовитель]
from [Таблица]
where [Дата] between @d1 and @d2
group by [Изделие],[Изготовитель]


на все смены по-отдельности я могу выводить, а вот
написать селект на все смены одновременно, что-то недоезжаю...
может кто-то сталкивался? или это вообще нельзя реализовать? Ну очень нужно...Спасибо за любые ответы.
...
Рейтинг: 0 / 0
Помогите, а то с запросом дым идет...
    #32038296
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так нужна дополнительная табличка, где каждой смене будет соотсветствовать свой временной диапазон. И соединить ее с главной таблицей в запросе через

ON [Дата] between xxx.d1 and xxx.d2
...
Рейтинг: 0 / 0
Помогите, а то с запросом дым идет...
    #32038302
Алексей_Д
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что смена здесь это понятие чисто временное, и однозначно сказать какой Изготовитель когда будет работать нельзя (скользящий график).
...
Рейтинг: 0 / 0
Помогите, а то с запросом дым идет...
    #32038309
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так, тем более нужна такая табличка. Или вы полагаете, что MS SQL Server может как-то сам догадаться, когда какя смена?
Вообще говоря, если вы оперируете понятиями "смена", и у этих самых "смен" хотя бы изредка (к примеру, раз в год) может что-то быть не так как всегда, но при этом подобные флюктуации не должны выбивать из колеи общий алгоритм расчетов, то... :::
... необходимо завести отдельную таблицу, назвать ее "Смены", создать в ней поля, соответствующие атрибутам смены (начало, конец, дежурный по плану, фактически отдежуривший и т.д. и т.п.). И тогда все получится.
...
Рейтинг: 0 / 0
Помогите, а то с запросом дым идет...
    #32038317
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понял. Тебе нужно в результате получить несколько смен или одну?
По одной так ты правильно все написал, разве что Distinct лишний.
А если надо в одном запросе сразу по нескольким сменам, то это делается примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT 	CASE 
	WHEN [Data] BETWEEN [время начала  1  смены] AND [время окончания  1  смены] THEN  1 
	WHEN [Data] BETWEEN [время начала  2  смены] AND [время окончания  2  смены] THEN  2 
	ELSE  0 
	END AS NumSmena,
	[Изделие], [Изготовитель],
	SUM([Масса]) AS MasSmena
FROM [Таблица]
GROUP BY NumSmena,[Изделие],[Изготовитель]


В принципе, используя аналогичный принцип можно сделать несколько столбцов типа MasSmena1, MasSmena2, и т.п.
...
Рейтинг: 0 / 0
Помогите, а то с запросом дым идет...
    #32038334
Алексей_Д
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения, вероятно я лопух, в том плане, что некорректно объяснил ситуацию с выходным селектом.

Вообще-то мне надо получить, что-то подобное
I см. II см.
Изделие Изготовитель Масса Изготовитель Масса
---------------------------------------------------
чайник Иванов 5 null null
кастрюля Сидоров 4 Петров 8
вилка null null Сидоров 6
и т.д...
...
Рейтинг: 0 / 0
Помогите, а то с запросом дым идет...
    #32038374
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помоему без #table Вам не обойтись,но почему такой станный вид у отчета ,разве так не более читаемо
Код: plaintext
1.
2.
3.
Смена Изготовитеть Изделие ...
  1         Петя            Вилка
............
  4         Саша           Еще одна


Отсортированные по дате?Если я прав то тогда используйте Union
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите, а то с запросом дым идет...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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