Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Полное соединение за вычетом внтуреннего. / 16 сообщений из 16, страница 1 из 1
23.04.2012, 11:06
    #37765864
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полное соединение за вычетом внтуреннего.
Нужна идея, как в запросе получить НЕ Внутреннее соединение или
полное за исключением множества внутреннего соединения.
...
Рейтинг: 0 / 0
23.04.2012, 11:13
    #37765883
Zerro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полное соединение за вычетом внтуреннего.
TVA_11Нужна идея, как в запросе получить НЕ Внутреннее соединение или
полное за исключением множества внутреннего соединения.
по аналогии со скулем используя нулл -связи только те где слева нул
...
Рейтинг: 0 / 0
23.04.2012, 11:15
    #37765886
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полное соединение за вычетом внтуреннего.
Попробую!
...
Рейтинг: 0 / 0
23.04.2012, 16:02
    #37766490
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полное соединение за вычетом внтуреннего.
ВЫБРАТЬ
ВЫБОР
КОГДА РаботникиОрганизаций.Сотрудник = NULL
ТОГДА РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
ИНАЧЕ NULL
КОНЕЦ КАК ДатаКалендаря,
РаботникиОрганизаций.Период КАК Период,
РаботникиОрганизаций.Сотрудник КАК Сотрудник,
РаботникиОрганизаций.Сотрудник.Код
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ПО РегламентированныйПроизводственныйКалендарь.ДатаКалендаря = РаботникиОрганизаций.Период
ГДЕ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода

УПОРЯДОЧИТЬ ПО
РаботникиОрганизаций.Сотрудник.Наименование,
Период,
ДатаКалендаря


Вот так не работает, всегда NULL выходит. Кроме того выводятся (пусть и NULL) значения внутреннего соединения.
...
Рейтинг: 0 / 0
23.04.2012, 16:06
    #37766500
pail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полное соединение за вычетом внтуреннего.
TVA_11,
В запросах лучше специально обученную функцию ЕстьNULL использовать вместо "= NULL"
...
Рейтинг: 0 / 0
23.04.2012, 16:10
    #37766512
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полное соединение за вычетом внтуреннего.
pail,

ВЫБРАТЬ
ВЫБОР
КОГДА ЕстьNULL(РаботникиОрганизаций.Сотрудник, true)=true
ТОГДА РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
ИНАЧЕ NULL
КОНЕЦ КАК ДатаКалендаря,
РаботникиОрганизаций.Период КАК Период,
РаботникиОрганизаций.Сотрудник КАК Сотрудник,
РаботникиОрганизаций.Сотрудник.Код
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ПО РегламентированныйПроизводственныйКалендарь.ДатаКалендаря = РаботникиОрганизаций.Период
ГДЕ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода

УПОРЯДОЧИТЬ ПО
РаботникиОрганизаций.Сотрудник.Наименование,
Период,
ДатаКалендаря


Так работает, но выводится и внутренне соединение.
Можно тоже условие добавить в ГДЕ
Но это уже не то.
...
Рейтинг: 0 / 0
23.04.2012, 16:29
    #37766556
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полное соединение за вычетом внтуреннего.
ВЫБРАТЬ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря,
РаботникиОрганизаций.Период КАК Период,
РаботникиОрганизаций.Сотрудник КАК Сотрудник,
РаботникиОрганизаций.Сотрудник.Код,
ВЫБОР
КОГДА ЕСТЬNULL(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, ИСТИНА) = ИСТИНА
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК Поле1,
ВЫБОР
КОГДА ЕСТЬNULL(РаботникиОрганизаций.Период, ИСТИНА) = ИСТИНА
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК Поле2
ПОМЕСТИТЬ кк
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ПО РегламентированныйПроизводственныйКалендарь.ДатаКалендаря = РаботникиОрганизаций.Период
ГДЕ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
кк.ДатаКалендаря,
кк.Период,
кк.Сотрудник,
кк.СотрудникКод
ИЗ
кк КАК кк
ГДЕ
(кк.Поле1 = ИСТИНА
ИЛИ кк.Поле2 = ИСТИНА)



Вот работающее кривое решение. (
...
Рейтинг: 0 / 0
24.04.2012, 07:00
    #37767363
SashaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полное соединение за вычетом внтуреннего.
TVA_11,

Не уверен что прокатит, но проверить стоит. Отпиши результат
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ВЫБРАТЬ
	РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря,
	РаботникиОрганизаций.Период КАК Период,
	РаботникиОрганизаций.Сотрудник КАК Сотрудник,
	РаботникиОрганизаций.Сотрудник.Код
ИЗ
	( ВЫБРАТЬ * ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь ГДЕ ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода ) КАК РегламентированныйПроизводственныйКалендарь

	ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
		ПО РаботникиОрганизаций.Период = РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
		 И ( РегламентированныйПроизводственныйКалендарь.ДатаКалендаря ЕСТЬ NULL ИЛИ РаботникиОрганизаций.Период ЕСТЬ NULL )
...
Рейтинг: 0 / 0
24.04.2012, 10:14
    #37767571
LexaK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полное соединение за вычетом внтуреннего.
ВЫБРАТЬ
Календарь.ДатаКалендаря,
Работники.Период,
Работники.Сотрудник,
Работники.Сотрудник.Код как КодСотрудника
Из
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК Календарь
ПОЛНОЕ СОЕДИНЕНИЕ
РегистрСведений.РаботникиОрганизаций КАК Работники
ПО Календарь.ДатаКалендаря = Работники.Период
и Календарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода
и Работники.Период МЕЖДУ &НачалоПериода И &КонецПериода
ГДЕ
Работники.Период есть Null
или
Календарь.ДатаКалендаря есть Null

у меня нет структуры вашей базы и назначение запроса не ясно, возможно запрос выглядел бы немного(или много) по другому.
...
Рейтинг: 0 / 0
24.04.2012, 11:15
    #37767730
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полное соединение за вычетом внтуреннего.
SashaM,

Да, работает. Только конструктор преобразует к другому виду.
* - убирает.
...
Рейтинг: 0 / 0
24.04.2012, 11:19
    #37767736
olegves
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полное соединение за вычетом внтуреннего.
ВЫБРАТЬ
ВЫБОР
ЕстьNULL(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря,РаботникиОрганизаций.Период)
КАК ДатаКалендаря,
РаботникиОрганизаций.Сотрудник КАК Сотрудник,
РаботникиОрганизаций.Сотрудник.Код
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ПО РегламентированныйПроизводственныйКалендарь.ДатаКалендаря = РаботникиОрганизаций.Период
ГДЕ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода
И РегламентированныйПроизводственныйКалендарь.ДатаКалендаря+РаботникиОрганизаций.Период ЕСТЬ NULL
УПОРЯДОЧИТЬ ПО
РаботникиОрганизаций.Сотрудник.Наименование,
ДатаКалендаря
------------------------------
Только по Сотрудник и Код надо бы применить ф-ю ЕстьNull, иначе для некоторых строк будет NULL
...
Рейтинг: 0 / 0
24.04.2012, 11:27
    #37767769
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полное соединение за вычетом внтуреннего.
ВЫБРАТЬ
Календарь.ДатаКалендаря,
Работники.Период,
Работники.Сотрудник,
Работники.Сотрудник.Код КАК КодСотрудника
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК Календарь
ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК Работники
ПО Календарь.ДатаКалендаря = Работники.Период
И (Календарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода)
И (Календарь.ДатаКалендаря ЕСТЬ NULL
ИЛИ Работники.Период ЕСТЬ NULL )


Вот компиляция вышеуказанных предложений, работает ).
...
Рейтинг: 0 / 0
24.04.2012, 11:33
    #37767782
Zerro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полное соединение за вычетом внтуреннего.
TVA_11ВЫБРАТЬ
Календарь.ДатаКалендаря,
Работники.Период,
Работники.Сотрудник,
Работники.Сотрудник.Код КАК КодСотрудника
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК Календарь
ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК Работники
ПО Календарь.ДатаКалендаря = Работники.Период
И (Календарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода)
И (Календарь.ДатаКалендаря ЕСТЬ NULL
ИЛИ Работники.Период ЕСТЬ NULL )


Вот компиляция вышеуказанных предложений, работает ).
ура...почитай книжек по скулу.. даж простых с селектами.. там много показано и более приближено к земле
...
Рейтинг: 0 / 0
24.04.2012, 12:43
    #37767977
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полное соединение за вычетом внтуреннего.
Zerro,

Извините, но я незнаю особенности косноизысканого местного жаргона.
Почитать по "скуллу", - дистриб от скайпа инопланетян отсутствует (.
)
...
Рейтинг: 0 / 0
24.04.2012, 12:44
    #37767981
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полное соединение за вычетом внтуреннего.
Zerro,

Что это?
...
Рейтинг: 0 / 0
24.04.2012, 13:19
    #37768093
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полное соединение за вычетом внтуреннего.
Догадался, SQL )
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Полное соединение за вычетом внтуреннего. / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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