powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Задвоение суммы
6 сообщений из 6, страница 1 из 1
Задвоение суммы
    #39975038
Raze
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер всем!
Помогите пожалуйста разобраться, что не так...
Есть несколько таблиц с которых берутся значения, но после расчета функции sum выходит, что сумма задваивается, т.е. вместо 2, выдает 4; вместо 3, выдает 6 и т.д.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CASE
	      WHEN mkts.trudemk is null or mkts.trudemk = 0 
			THEN (
				   (select (SELECT DISTINCT  top 1 sum(n.KNRM) k		
				    FROM NRMD N
				    WHERE N.KMATGP=TTMZ.KMATGP AND N.NTECHPR=TTMZ.NTECHPR AND N.NOP= TTMR.NOP
				    group by n.knrm								
				    )* (mktsreg.kol_f + mktsreg.kol_b + mktsreg.kol_bi) 
					 from  TTMZ
					 left JOIN ttmr
					      ON TTMR.UNTTMZ=TTMZ.UNTTMZ
					 where ttmz.ntechpr = mkts.ntechpr and ttmz.kmatgp = ksm.kmat
						and ttmr.nop = mkts.nop
				   ) / 60)
		            ELSE 0
			    END	AS timeMadeFromTechRoute



как можно поправить? пролез уже много сайтов и конечного решения для свей проблемы я не нашел.. Надеюсь понятно объяснил..
...
Рейтинг: 0 / 0
Задвоение суммы
    #39975060
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кусочек монстросити

Код: sql
1.
2.
3.
4.
5.
select (single value подзапрос) * (mktsreg.kol_f + mktsreg.kol_b + mktsreg.kol_bi)  -- какие то данные

from  TTMZ ON TTMR.UNTTMZ=TTMZ.UNTTMZ

where ttmz.ntechpr = mkts.ntechpr and ttmz.kmatgp = ksm.kmat and ttmr.nop = mkts.nop



то есть соединяются два кортежа TTMR и TTMZ, а выбирается производное single value подзапроса и какой то суммы из совершенно другой таблицы (mktsreg) по условию, в котором используются вообще другие таблицы (mkts, ksm)

Либо это обфуркация такая, либо это кусок из сильно коррелированного монструозного запроса.

Не?

зы. single value подзапрос тоже коррелированный

Код: sql
1.
2.
top 1 sum(n.KNRM) 
group by n.knrm


Это случаем не из генератора запросов такое выпадает?
...
Рейтинг: 0 / 0
Задвоение суммы
    #39975067
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такое надо разбивать на части и смотреть глазами все соединения, но учитывая количество условий и коррелированность, это будет боль.

Ну и тут
Код: sql
1.
2.
3.
SELECT DISTINCT  top 1 sum(n.KNRM) k		
FROM NRMD N
group by n.knrm

у вас с какого конца уникальное первое сгруппированное значение должно быть?
...
Рейтинг: 0 / 0
Задвоение суммы
    #39975070
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Raze,

я бы на вашем месте погонял бы запрос
Код: sql
1.
2.
3.
4.
(SELECT n.KNRM---DISTINCT  top 1 sum(n.KNRM) k		
				    FROM NRMD N
				    WHERE N.KMATGP=TTMZ.KMATGP AND N.NTECHPR=TTMZ.NTECHPR AND N.NOP= TTMR.NOP
				    --group by n.knrm	


с фиксированными значениями отбора
Код: sql
1.
WHERE N.KMATGP=TTMZ.KMATGP AND N.NTECHPR=TTMZ.NTECHPR AND N.NOP= TTMR.NOP


и посмотреть результаты

ну или можете попробовать вместо sum(n.KNRM) сделать sum(DISTINCT n.KNRM), если чисто наугад :)

кстати, про сортировку правильно заметили. group by не сортирует результат
...
Рейтинг: 0 / 0
Задвоение суммы
    #39975081
Raze
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, спасибо всем за ответы! Буду разбирать тогда, смотреть
(Касательно куска, да, все верно, по сути это только часть (выдранная), но в целом я понял, к чему все ведется))) )
...
Рейтинг: 0 / 0
Задвоение суммы
    #39975244
Raze
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем кто откликнулся спасибо, все очень помогли)
Разобрал по частям (правда времени действительно много убил), сейчас все в порядке, расчет идет верный, задвоений суммы нет!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Задвоение суммы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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