|
|
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
Есть таблица, в ней есть поля BILL_ID (номер счета) и BILL_ON (номер счета, на который списана запись). Принцип работы такой: фирме выставляется общий счет (например, за год), он записывается в таблицу с идентификатором BILL_ID. Помимо этого в таблице есть текущие счета, по которым идет оплата услуг втечение года. Когда приходит общий счет, на него списывают все текущие, т.е. в строку каждого текущего счета добавляется идентификатор общего счета, на который он списывается (BILL_ON). Мне необходимо сделать запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 15:58 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
Так чего, общие и текущие счета в одну таблицу пишутся? Или разные? Если в разные - то обычный джойн... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 16:15 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
Все счета пишутся в одну таблицу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 16:17 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
Ну а как-то можно отличить по записи, общий это счет или текущий? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 16:20 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
select mainbil.* , parentbil.* from (select * from таблица where BILL_ON is null ) as mainbil inner join (select * from таблица where BILL_ON is not null ) as parentbil on mainbil.BILL_ID =parentbil.BILL_ON ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 16:21 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
2 zz а зачем их "отличать" текущие простые потомки общего я пока совсем не понимаю при чем тут union-join что ORDER BY BILL_ID, BILL_ON потребно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 16:24 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
что сверх ORDER BY BILL_ID, BILL_ON потребно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 16:25 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
АлексейК Это уже ближу к правде :) Этот запрос растягивает общий счет и списанные на него в одну строку. Сейчас попробую додумать zz У общего счета поле BILL_ID is not null, а у списанного на него BILL_ID = null and BILL_ON is not nul Victosha Как понимать слово ПОТРЕБНО? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 16:30 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
Тьфу, черт, запутал совсем юнионами своими... А потребно IIf(([BILL_ON] Is Null);[BILL_ID];"-") - это в запросе на таблицу вместо BILL_ID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 16:30 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
zz за UNIONы прошу прощения А предложенный вариант не ПОТРЕБЕН ввиду особенностей сортировки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 16:33 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
потребно=требуется если написать Select * from YourTbl ORDER BY BILL_ID, BILL_ON это даст тот вид возврата, который Вам хотелось бы получить? ИЛИ КРОМЕ сортировки в правильной последовательности счетов что еще нужно - сложить-умножить-соединить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 16:33 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
Тогда я вообще ничего не понимаю. И присоединясь к вопросу Victosha. Что вам нужно в итоговом запросе помимо сортировок по BILL_ID и BILL_ON? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 16:35 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
BILL_ID / ... / BILL_ON 1 ... - (общий счет) - ... 1 (текущий счет, списанный на общий) - ... 1 - ... 1 2 ... - - ... 2 - ... 2 - ... 2 вот подумал, может быть это вопрос НЕ О ЗАПРОСЕ, А ОБ ОТЧЕТЕ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 16:40 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
АлексейК что-то не получается :( zz и Victosha Пожалуйста, обратитесь к моему вопросу (1-й сабж) - там показаны особенности сортировки. Предложенный вариант от Victosha не подходит, т.к. возвращает все записи из таблицы в неясно каком порядке. В таблице помимо разнесенных текущих счетов есть и неразнесенные, которые отображать не нужно... Попробовал: Код: plaintext 1. 2. 3. вот подумал, может быть это вопрос НЕ О ЗАПРОСЕ, А ОБ ОТЧЕТЕ? Да это для отчета ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 16:44 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
авторwhere (bill_on is null and bill_id is null)=false ЭТО (неразнесенные текущие) пишется так Код: plaintext если кроме того, есть строки с неназначенными общими счетами, то Код: plaintext Далее, ORDER BY в запросе НЕ НУЖЕН. Сортируйте прямо в отчете. ЗЫ Ваш фильтр отбрасывает ТОЛЬКО и ТОЛЬКО те записи, в которых НЕТ ОБОИХ СЧЕТОВ ОДНОВРЕМЕННО, ТО ЕСТЬ равнозначен BILL_ID IS NOT NULL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 16:53 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
поправка - равнозначен не общелогически а "по бизнесправилам". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 16:54 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
равнозначен BILL_ID IS NOT NULL этот фильтр возвращает те записи, в которых либо BILL_ID is NOT null, либо BILL_ON is NOT null Сортируйте прямо в отчете. Как это сделать в отчете я тоже не знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 16:57 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
Про фильтр Вы правы - пустил я воздуху... Про отчет. Запустите Мастер отчетов, в качестве источника выберите свою таблицу. Дальше аккуратно и внимательно следуйте мастеру. Смотрите ка появляющиеся в определенных местах кнопочки - пробуйте как работают. Получится ОБЯЗАТЕЛЬНО, ну, может не с САМОГО первого раза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 17:04 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
Victosha Be manner... Объясни мне, пожалуста, как так может быть, что в запросе выборку сделать не получается, а в отчете обязательно получиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 17:13 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 17:14 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
У кого-нибудь есть более дельные предложения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 17:14 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
авторУ кого-нибудь есть более дельные предложения? Э-э-э А мое не подойдет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 17:15 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
paparome Супер! Подошло! Спасибо всем :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 17:16 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
авторчто в запросе выборку сделать не получается я не понял, что не получается в запросе? Понял я следующее - (по пунктам) 1) отобрать требуется все те записи, у которых заполнены КАК BILL_ID ТАК И BILL_ON ТАКОЙ отбор делает запрос Код: plaintext 1. 2. 3. 4. 2) поля BILL_ON заполнены значениями BILL_ID (ТАК ЛИ ЭТО ?), которые являются родительскими для данной записи. 3) В отчете ТРЕБУЕТСЯ а) отображение в правильном порядке СОРТИРОВКИ б) в определенном формате. Здесь надо сказать следующее - ПОРЯДОК СОРТИРОВКИ в ОТЧЕТЕ не имеет отношения к порядку сортировки в запросе. У отчета свои механизмы сортировки. Поэтому и СОРТИРОВАТЬ надо сразу в отчете - ЭТО получится. О формате есть смысл говорить после того, как получена сортировка. ЗЫ Все мною написанное исходило из вышеизложенного понимания. Если я НЕ ТАК что-то понял - поправьте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 17:23 |
|
||
|
UNION SELECT
|
|||
|---|---|---|---|
|
#18+
2 Виктоша Не - не правильно понял: - Заполнено либо BILL_ON, либо BILL_ID - Задача заключалась не в правильной выборке (выборку он сдела), а в правильной сортировке PS: Извини меня, что я перебил твою мысль :( Но - проехали уже :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 17:29 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1624&tid=1674365]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 348ms |

| 0 / 0 |
