Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2012, 13:50   #11
lyb4eg
Пользователь
 
Регистрация: 06.08.2011
Сообщений: 76
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Дальше к результату прицепите данные одного счета. Кстати тоже не тривиально

Почему, что Вы имеете ввиду?
lyb4eg вне форума Ответить с цитированием
Старый 13.01.2012, 13:53   #12
SovereignSun
Форумчанин
 
Регистрация: 22.11.2011
Сообщений: 127
По умолчанию

А какое условие должно быть?
SovereignSun вне форума Ответить с цитированием
Старый 13.01.2012, 14:01   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Почему ОРФ1045-14874 не попадет?
Потому что 14874 попадет в договор ОРФ1044, а по примеру - если использовано, то в другом договоре другую правую часть ищи, а ее как раз и нет
Цитата:
Почему, что Вы имеете ввиду?
Счетов на договор может быть несколько. Правильно? А прицепить нужно только один
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.01.2012, 14:03   #14
SovereignSun
Форумчанин
 
Регистрация: 22.11.2011
Сообщений: 127
По умолчанию

Как можно в having by теперь использовать созданый в Case столбец "Идентификатор"?
SovereignSun вне форума Ответить с цитированием
Старый 13.01.2012, 14:04   #15
lyb4eg
Пользователь
 
Регистрация: 06.08.2011
Сообщений: 76
По умолчанию

Это пример - шаблон, если условий нету, то никаких не должно быть...
Ну в примере "Аватара" очень хорошо все показано, вот только не могу понять почему не подтягивается ОРФ1045-14874((
lyb4eg вне форума Ответить с цитированием
Старый 13.01.2012, 14:06   #16
lyb4eg
Пользователь
 
Регистрация: 06.08.2011
Сообщений: 76
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Потому что 14874 попадет в договор ОРФ1044, а по примеру - если использовано, то в другом договоре другую правую часть ищи, а ее как раз и нет
Счетов на договор может быть несколько. Правильно? А прицепить нужно только один
Да, не подумал об этом.... Если честно, не до конца понял все условия выборки (
lyb4eg вне форума Ответить с цитированием
Старый 13.01.2012, 14:08   #17
SovereignSun
Форумчанин
 
Регистрация: 22.11.2011
Сообщений: 127
По умолчанию

Цитата:
Сообщение от lyb4eg Посмотреть сообщение
Это пример - шаблон, если условий нету, то никаких не должно быть...
Ну в примере "Аватара" очень хорошо все показано, вот только не могу понять почему не подтягивается ОРФ1045-14874((
я понял.. во первых такого быть не может эти пять цифр уникальны и не повторяються, повторяються только первые 7.
А Какое из 3-5-8 одинокавых будет отобрано, неважно.. Главное чтобы одна из повторяющихся только было отображена.
SovereignSun вне форума Ответить с цитированием
Старый 13.01.2012, 14:36   #18
SovereignSun
Форумчанин
 
Регистрация: 22.11.2011
Сообщений: 127
По умолчанию

SELECT Distinct CAST((CASE WHEN CHARINDEX('-',Счета.Договор)>0
THEN RIGHT(Счета.Договор,LEN(Счета.Догов ор)-CHARINDEX('-',Счета.Договор)) ELSE NULL END) AS varchar(20)) AS Идентификатор
from Счета
Left join Договора
ON Счета.Договор=Договора.Договор

Вот в таком виде, отображает правильно, один столбец Идентификатор без повторяющихся записей..стоит мне еще хоть любой столбец через запятую добавить, уже уникальность рушиться.
SovereignSun вне форума Ответить с цитированием
Старый 13.01.2012, 14:48   #19
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Добавлю еще напоследок последние три копейки. В общем случае эта задача запросом корректно не решается. Приведенный пример можно решить, но на практике у вас сплошь и рядом будуть такие комбинации, что часть договоров будет выпадать, как бы хитромудро не был составлен запрос. Нормальное решение возможно итерационным путем, с использованием перебора вариантов, при этом решение может все равно не существовать. Но это не для SQL
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.01.2012, 16:32   #20
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

а группировка по названию фирмы не поможет?
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как составить запрос по нескольким полям lysyuk1 БД в Delphi 3 17.11.2011 10:13
Составной запрос, как правильно составить? Bendebej SQL, базы данных 10 26.02.2010 20:01
Как составить запрос? jeka5555 SQL, базы данных 3 09.09.2009 10:12
Как составить запрос из каталога? wegeras PHP 1 28.10.2008 13:36
Как правельно составить запрос!! Areostar SQL, базы данных 3 16.02.2008 19:49