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

Откуда:
Сообщений: 19
Как объединить такое в один запрос?

первый(суммы за посл.месяц):

SELECT SUM(tab1.[Продукт кг]) #Sum_m_kg#, SUM(tab1.Стоимость) #Sum_m_ITOGO#
FROM tab1
Where month(tab1.Дата_Время)=month(getdate()) and year(tab1.Дата_Время)=year(getdate())

и второй (суммы за посл.день):

SELECT SUM(tab1.[Продукт кг]) #Sum_d_kg#,SUM(tab1.Стоимость) #Sum_d_ITOGO#
FROM tab1
Where day(tab1.Дата_Время)=day(getdate()) and month(tab1.Дата_Время)=(month(getdate()) and year(tab1.Дата_Время)=year(getdate())
17 май 13, 13:25    [14311358]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
beginer_2
Как объединить такое в один запрос?
SELECT SUM(tab1.[Продукт кг]) #Sum_m_kg#, SUM(tab1.Стоимость) #Sum_m_ITOGO#
FROM	tab1
Where month(tab1.Дата_Время)=month(getdate()) and year(tab1.Дата_Время)=year(getdate())
UNION ALL
SELECT SUM(tab1.[Продукт кг]),SUM(tab1.Стоимость)
FROM	tab1
Where day(tab1.Дата_Время)=day(getdate()) and month(tab1.Дата_Время)=(month(getdate()) and year(tab1.Дата_Время)=year(getdate())
17 май 13, 13:34    [14311456]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
beginer_2
Member

Откуда:
Сообщений: 19
пробовал union all
но выдает два раза первый select (Sum_m_kg и Sum_m ITOGO) : первый с результатом, второй нули.
17 май 13, 13:52    [14311665]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
Гость333
Member

Откуда:
Сообщений: 3683
beginer_2
пробовал union all
но выдает два раза первый select (Sum_m_kg и Sum_m ITOGO) : первый с результатом, второй нули.

А нули, в вашем понимании, не результат?
17 май 13, 13:58    [14311736]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
если запрос выдал результат два раза, значит Вы его запустили два раза

запускайте запрос один раз
17 май 13, 13:59    [14311740]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
beginer_2
Member

Откуда:
Сообщений: 19
нет, один раз .
если бы два раза результат был бы один и тот же.
17 май 13, 14:00    [14311764]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
можете выложить сюда кусок скриншота как выглядит результат?
17 май 13, 14:05    [14311811]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
beginer_2
Member

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

Sum_m_kg=23.1329997777939
Sum_m_ITOGO=201.229999542236
Sum_m_kg=0
Sum_m_ITOGO=0
17 май 13, 14:06    [14311830]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
beginer_2
пробовал union all
но выдает два раза первый select (Sum_m_kg и Sum_m ITOGO) : первый с результатом, второй нули.


перевожу на русский: выдается таблица из двух строк со столбцами Sum_m_kg и Sum_m_ITOGO.
интересно, что ожидал получить автор?
17 май 13, 14:07    [14311840]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
beginer_2
вот так

Sum_m_kg=23.1329997777939
Sum_m_ITOGO=201.229999542236
Sum_m_kg=0
Sum_m_ITOGO=0
не верю пока не увижу скриншота
17 май 13, 14:11    [14311884]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
beginer_2
Member

Откуда:
Сообщений: 19
to daw

Хочу получить значения сумм за последний месяц и последний день отдельно по каждому столбцу таблицы.

to Паганель

мне-то врать зачем?
17 май 13, 14:22    [14311969]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
Гость333
Member

Откуда:
Сообщений: 3683
beginer_2
Хочу получить значения сумм за последний месяц и последний день отдельно по каждому столбцу таблицы.

У вас значения сумм за последний день равны нулю. Чем не устраивает этот результат?
17 май 13, 14:46    [14312189]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
beginer_2
Member

Откуда:
Сообщений: 19
Гость333
beginer_2
Хочу получить значения сумм за последний месяц и последний день отдельно по каждому столбцу таблицы.

У вас значения сумм за последний день равны нулю. Чем не устраивает этот результат?


Нет они не выводятся (Sum_d_kg и Sum_d_ITOGO) в результате только Sum_m_...(дважды)
(это по предложению Паганеля)

Отдельно каждый запрос выполняется нормально.
17 май 13, 14:53    [14312258]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
petre
Member

Откуда: Кривой Рог
Сообщений: 42
SELECT 'month' , SUM(tab1.[Продукт кг]) #Sum_kg#, SUM(tab1.Стоимость) #Sum_ITOGO#
FROM	tab1
Where month(tab1.Дата_Время)=month(getdate()) and year(tab1.Дата_Время)=year(getdate())
UNION ALL
SELECT 'day', SUM(tab1.[Продукт кг]) #Sum_kg#, SUM(tab1.Стоимость) #Sum_ITOGO#
FROM	tab1
Where day(tab1.Дата_Время)=day(getdate()) and month(tab1.Дата_Время)=(month(getdate()) and year(tab1.Дата_Время)=year(getdate())

Попробуйте.
17 май 13, 15:01    [14312306]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
Гость333
Member

Откуда:
Сообщений: 3683
beginer_2
Гость333
пропущено...

У вас значения сумм за последний день равны нулю. Чем не устраивает этот результат?


Нет они не выводятся (Sum_d_kg и Sum_d_ITOGO) в результате только Sum_m_...(дважды)
(это по предложению Паганеля)

Отдельно каждый запрос выполняется нормально.

Мда. Тогда так:
SELECT *
FROM
(
  SELECT SUM(tab1.[Продукт кг]) #Sum_m_kg#, SUM(tab1.Стоимость) #Sum_m_ITOGO#
  FROM tab1
  Where month(tab1.Дата_Время)=month(getdate()) and year(tab1.Дата_Время)=year(getdate())
) m
CROSS JOIN
(
  SELECT SUM(tab1.[Продукт кг]) #Sum_d_kg#,SUM(tab1.Стоимость) #Sum_d_ITOGO#
  FROM tab1
  Where day(tab1.Дата_Время)=day(getdate()) and month(tab1.Дата_Время)=(month(getdate()) and year(tab1.Дата_Время)=year(getdate()) 
) d
17 май 13, 15:06    [14312348]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
Glory
Member

Откуда:
Сообщений: 104751
SELECT SUM(tab1.[Продукт кг]) #Sum_m_kg#, SUM(tab1.Стоимость) #Sum_m_ITOGO#,
SUM(CASE WHEN day(tab1.Дата_Время)=day(getdate())  THEN tab1.Стоимость END)  #Sum_d_ITOGO#
FROM	tab1
Where month(tab1.Дата_Время)=month(getdate()) and year(tab1.Дата_Время)=year(getdate())
17 май 13, 15:10    [14312370]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
beginer_2
Member

Откуда:
Сообщений: 19
Гость333,

Результат такой

задать Sum_m_m3=0
задать Sum_m_ITOGO=0
получить Sum_m_m3=
получить Sum_m_ITOGO=
получить Sum_d_m3=
получить Sum_d_ITOGO=
17 май 13, 15:23    [14312489]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
beginer_2
Member

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

Вернее

получить Sum_m_m3=
получить Sum_m_ITOGO=
получить Sum_d_m3=
получить Sum_d_ITOGO=


две первые строки из предыдущего результата скопировал
17 май 13, 15:26    [14312515]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
beginer_2
Member

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

вот такое в результате

получить Sum_d_kg=
получить Sum_d_ITOGO=
задать =month
задать Sum_m_kg=23.1329997777939
задать Sum_m_ITOGO=201.229999542236
задать =day
задать Sum_m_kg=0
задать Sum_m_ITOGO=0
17 май 13, 15:28    [14312525]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
Гость333
Member

Откуда:
Сообщений: 3683
beginer_2
Гость333,

Результат такой

задать Sum_m_m3=0
задать Sum_m_ITOGO=0
получить Sum_m_m3=
получить Sum_m_ITOGO=
получить Sum_d_m3=
получить Sum_d_ITOGO=

Что такое "задать" и "получить"? Что такое "Sum_m_m3" и "Sum_d_m3"? Вы явно какой-то другой скрипт запускаете.
17 май 13, 15:33    [14312570]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
beginer_2
petre,

вот такое в результате

получить Sum_d_kg=
получить Sum_d_ITOGO=
задать =month
задать Sum_m_kg=23.1329997777939
задать Sum_m_ITOGO=201.229999542236
задать =day
задать Sum_m_kg=0
задать Sum_m_ITOGO=0
откройте для уже себя клавишу PrtScr ато нифига жеж непонятно!
17 май 13, 15:34    [14312588]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
beginer_2
Member

Откуда:
Сообщений: 19
Все запросы выполняются из браузера запросов SCADA TM6.

задать/получить - это в его отчете дописывается к строкам результатов.

to Glory см. файл

Немного изменил выборку данных (столб. [Продукт м3]),
C Sum без CASE-нормально
с CASE- выдало ноль,хотя не должно бы.

К сообщению приложен файл. Размер - 94Kb
17 май 13, 16:20    [14312919]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
Glory
Member

Откуда:
Сообщений: 104751
beginer_2
с CASE- выдало ноль,хотя не должно бы.

Почему это ? Откуда вы знаете ?
17 май 13, 16:22    [14312933]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
samoxod
Member

Откуда: Москва
Сообщений: 31
beginer_2,
К ответу Glory добавил чуток:

SELECT SUM(tab1.[Продукт кг]) #Sum_m_kg#, SUM(tab1.Стоимость) #Sum_m_ITOGO#,
SUM(CASE WHEN day(tab1.Дата_Время)=day(getdate())  THEN tab1.[Продукт кг]  END)  #Sum_d_kg#,
SUM(CASE WHEN day(tab1.Дата_Время)=day(getdate())  THEN tab1.Стоимость END)  #Sum_d_ITOGO#
FROM	tab1
Where month(tab1.Дата_Время)=month(getdate()) and year(tab1.Дата_Время)=year(getdate())
17 май 13, 16:24    [14312947]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по суммированию с условием  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
beginer_2
Все запросы выполняются из браузера запросов SCADA TM6
А Вы не могли бы выполнять их в MS SQL Management Studio чтобы разговаривать на одном языке с другими участниками форума?
17 май 13, 16:27    [14312974]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить