powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / max() и join
11 сообщений из 11, страница 1 из 1
max() и join
    #39990998
pengvin213
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все привет! Можно ли получить самое макс. значение в этом запросе используя MAX(sll.[First Source Counter])? У меня получилось получить только с SELECT TOP 1 и Desc.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 DECLARE @DateBak DATE, @SubJob nvarchar(max), @Job nvarchar(max) 
 
SET @DateBak = '2020-08-16' 
SET @SubJob = 'ЦЕНЫ_В_МАГ' 
SET @Job = 'ТОВАР_В_198' 
 
SELECT TOP 1
sll.[Subjob ID] as 'Сабджоб', 
sl.[Starting Date] as 'Дата начала', 
sl.[Starting Time] as 'Время начала' , 
sll.[First Source Counter] as 'Первый Счетчик Источника' 
 FROM [DD-Production].[dbo].[Планировщик - Производство$Scheduler Log] sl 
 LEFT JOIN [DD-Production].[dbo].[Планировщик - Производство$Scheduler Log Line] sll 
 on sl.[Entry No.] = sll.[Entry No.] 
 WHERE sl.[Starting Date] < @DateBak and sl.[Scheduler Job ID] = @Job and sll.[Subjob ID] = @SubJob 
 ORDER by sll.[First Source Counter] DESC
...
Рейтинг: 0 / 0
max() и join
    #39991008
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pengvin213,

А когда вы исполняете
Код: sql
1.
2.
3.
SELECT
MAX(sll.[First Source Counter])
FROM


у вас разве не выбирается максимальное значение?
...
Рейтинг: 0 / 0
max() и join
    #39991017
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
group by
...
Рейтинг: 0 / 0
max() и join
    #39991026
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pengvin213
Все привет! Можно ли получить самое макс. значение в этом запросе используя MAX(sll.[First Source Counter])? У меня получилось получить только с SELECT TOP 1 и Desc.
Если [First Source Counter] уникальный, то можно, сделав подзапрос с MAX(sll.[First Source Counter]), и связав его с таблицей по [First Source Counter]
Если он не уникальный, то в результате получится не одна запись.
...
Рейтинг: 0 / 0
max() и join
    #39991059
pengvin213
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PizzaPizza,

Добрый день!
GROUP BY еще добавлял. В результате не высчитывает. Хотя это поле уникальное.
Пробовал и подзапрос делать, вообще запрос пустоту выводит.
Поэтому и написал, интересно понять, почему не работает.
...
Рейтинг: 0 / 0
max() и join
    #39991098
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pengvin213
Поэтому и написал, интересно понять, почему не работает.
Наверное, у вас ошибка. Даже наверняка.

Покажите уже запрос.
...
Рейтинг: 0 / 0
max() и join
    #39991176
pengvin213
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg, Сделал так работает, но как мне сделать так, что бы у меня показывалась поле sl.[Starting Date] as 'Дата начала' и sl.[Starting Time] as 'Время начала'. ? Группировать их нельзя. Если с них снять коммент, то ошибка:

Column 'DD-Production.dbo.Планировщик - Производство$Scheduler Log.Starting Date' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
DECLARE @DateBak DATE, @SubJob nvarchar(max), @Job nvarchar(max)

SET @DateBak = '2020-08-16'
SET @SubJob = 'ЦЕНЫ_В_МАГ'
SET @Job = 'ТОВАР_В_198'

SELECT
sll.[Subjob ID] as 'Сабджоб', 
--sl.[Starting Date] as 'Дата начала',
--sl.[Starting Time] as 'Время начала' ,
MAX(sll.[First Source Counter]) as 'Первый Счетчик Источника'
  FROM [DD-Production].[dbo].[Планировщик - Производство$Scheduler Log] sl
  JOIN [DD-Production].[dbo].[Планировщик - Производство$Scheduler Log Line] sll
  on sl.[Entry No.] = sll.[Entry No.]
  WHERE sl.[Starting Date] < @DateBak and sl.[Scheduler Job ID] = @Job and sll.[Subjob ID] = @SubJob
  --ORDER by sll.[First Source Counter] DESC
  GROUP BY sll.[Subjob ID]
...
Рейтинг: 0 / 0
max() и join
    #39991269
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 DECLARE @DateBak DATE, @SubJob nvarchar(max), @Job nvarchar(max) 
 
SET @DateBak = '2020-08-16' 
SET @SubJob = 'ЦЕНЫ_В_МАГ' 
SET @Job = 'ТОВАР_В_198' 
 
SELECT TOP 1
sll.[Subjob ID] as 'Сабджоб', 
sl.[Starting Date] as 'Дата начала', 
sl.[Starting Time] as 'Время начала' , 
sll.[First Source Counter] as 'Первый Счетчик Источника' 
,max(sll.[First Source Counter]) over () -- оконная функция не?
 FROM [DD-Production].[dbo].[Планировщик - Производство$Scheduler Log] sl 
 LEFT JOIN [DD-Production].[dbo].[Планировщик - Производство$Scheduler Log Line] sll 
 on sl.[Entry No.] = sll.[Entry No.] 
 WHERE sl.[Starting Date] < @DateBak and sl.[Scheduler Job ID] = @Job and sll.[Subjob ID] = @SubJob 
 ORDER by sll.[First Source Counter] DESC
...
Рейтинг: 0 / 0
max() и join
    #39991304
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT
sll.[Subjob ID] as 'Сабджоб', 
--sl.[Starting Date] as 'Дата начала',
--sl.[Starting Time] as 'Время начала' ,
MAX(sll.[First Source Counter]) as 'Первый Счетчик Источника'
  FROM 
  GROUP BY sll.[Subjob ID]



Группировка означает объединение записей. Если несколько записей с одинаковым значением по группируюущему полю - они должны быть объединены в одну запись. [Subjob ID] у вас для группы одинаковый. MAX выбирает из группы максимальное значение. Какое же значение из группы вы хотите для поля [Starting Date] ? Максимальное, минимальное, среднее, количество значений...?
...
Рейтинг: 0 / 0
max() и join
    #39991328
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pengvin213
alexeyvg, Сделал так работает, но как мне сделать так, что бы у меня показывалась поле sl.[Starting Date] as 'Дата начала' и sl.[Starting Time] as 'Время начала'. ? Группировать их нельзя. Если с них снять коммент, то ошибка:
Я же вам написал: 22184778
...
Рейтинг: 0 / 0
max() и join
    #39991332
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
pengvin213
alexeyvg, Сделал так работает, но как мне сделать так, что бы у меня показывалась поле sl.[Starting Date] as 'Дата начала' и sl.[Starting Time] as 'Время начала'. ? Группировать их нельзя. Если с них снять коммент, то ошибка:
Я же вам написал: 22184778
Например:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
SET @DateBak = '2020-08-16'
SET @SubJob = 'ЦЕНЫ_В_МАГ'
SET @Job = 'ТОВАР_В_198'

SELECT
    sll.[Subjob ID] as 'Сабджоб', 
    sl.[Starting Date] as 'Дата начала',
    sl.[Starting Time] as 'Время начала' ,
    sll.[First Source Counter] as 'Первый Счетчик Источника'
FROM (
    SELECT 
        MAX(sll.[First Source Counter]) as [First Source Counter]
    FROM [DD-Production].[dbo].[Планировщик - Производство$Scheduler Log] sl
        JOIN [DD-Production].[dbo].[Планировщик - Производство$Scheduler Log Line] sll
            on sl.[Entry No.] = sll.[Entry No.]
    WHERE sl.[Starting Date] < @DateBak and sl.[Scheduler Job ID] = @Job and sll.[Subjob ID] = @SubJob
    GROUP BY sll.[Subjob ID]
) t
    JOIN [DD-Production].[dbo].[Планировщик - Производство$Scheduler Log Line] sll
            on sll.[First Source Counter] = t.[First Source Counter]
    JOIN [DD-Production].[dbo].[Планировщик - Производство$Scheduler Log] sl
            on sl.[Entry No.] = sll.[Entry No.]
ORDER by sll.[First Source Counter] DESC
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / max() и join
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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