|
|
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
ДАно: Table1 - Поля: ID, Quant Table2 - Поля: ID, Quant Требуется: 1)Выбрать все значения из Table1, где Quant > 0 (не проблема) Table3: Select Id As Id, Quant As Quant From Table1 Where Quant > 0 2)Выбрать все значения из получившейся Table3. в итоге должна получится Table4 = Table3 за исключением строк в которых Table2.ID = Table3.ID. в этих строках Quant = Table3.Quant - Table2.Quant У меня получается отобрать только те строки в которых ID равны. как сделать??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 12:27 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
select * from Table1 where Quant>0 and ID not in(select ID from Table2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 12:36 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
AleksMedselect * from Table1 where Quant>0 and ID not in(select ID from Table2) дык получить их в разных таблица можно. как объеденить в одну? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 12:42 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
что то типа этого select t3.id,t3.quant from table3 t3 where not exists (select 1 from table2 where t3.id=table2.id) union all select t3.id,t3.quant-table2.quant from table3 t3 join table2 on t3.id=table2.id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 12:43 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
firerer AleksMedselect * from Table1 where Quant>0 and ID not in(select ID from Table2) дык получить их в разных таблица можно. как объеденить в одну? Что объеденить в одну? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 13:03 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
а незя как нить условие поставить. типа если есть строка в табле2 тогда вычесть, иначе не вычетать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 13:34 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
AleksMed Что объеденить в одну? я так понимаю этот запрос выберет все записи из таблицы2 которые не упоминаются в таблице1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 13:38 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Этот запрос выберет записи из таблицы 1 у которых Quant>0 и идентификаторых которых отсутствуют в таблице 2. Т.е выполнится вот это: авторДАно: Table1 - Поля: ID, Quant Table2 - Поля: ID, Quant Требуется: 1)Выбрать все значения из Table1, где Quant > 0 (не проблема) Table3: Select Id As Id, Quant As Quant From Table1 Where Quant > 0 2)Выбрать все значения из получившейся Table3. в итоге должна получится Table4 = Table3 за исключением строк в которых Table2.ID = Table3.ID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 13:44 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
AleksMedЭтот запрос выберет записи из таблицы 1 у которых Quant>0 и идентификаторых которых отсутствуют в таблице 2. Т.е выполнится вот это: там продолжение: "в этих строках Quant = Table3.Quant - Table2.Quant " в этом продолжении вся загвоздка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 13:50 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
firerer AleksMedЭтот запрос выберет записи из таблицы 1 у которых Quant>0 и идентификаторых которых отсутствуют в таблице 2. Т.е выполнится вот это: там продолжение: "в этих строках Quant = Table3.Quant - Table2.Quant " в этом продолжении вся загвоздка Этих идентификаторов нету в Table2. Что ты хочешь вычитать? :) Или неправильно описана задача. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 13:53 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
firerer там продолжение: "в этих строках Quant = Table3.Quant - Table2.Quant " в этом продолжении вся загвоздка ТОесть конешно Тable1.Quant - Table2.Quant ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 13:57 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Если связь между таблицами Table1 и Table2 один-к-одному или много-к-одному, то можно так: Код: plaintext 1. 2. 3. 4. 5. 6. Если одной записи из таблицы Table1 может соответствовать несколько записей из таблицы Table2, то такая схема не годится. Но в этом случае следует уточнить, какую сумму вычитать из суммы каждой записи Table1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 14:13 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
ВладимирМЕсли связь между таблицами Table1 и Table2 один-к-одному или много-к-одному связь следующая. для каждого Table1.ID может существовать только одна запись с Table2.ID = Table1.ID. но ее может и не быть вовсе. вот в чем загвоздка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 14:21 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
AleksMed firerer AleksMedЭтот запрос выберет записи из таблицы 1 у которых Quant>0 и идентификаторых которых отсутствуют в таблице 2. Т.е выполнится вот это: там продолжение: "в этих строках Quant = Table3.Quant - Table2.Quant " в этом продолжении вся загвоздка Этих идентификаторов нету в Table2. Что ты хочешь вычитать? :) Или неправильно описана задача. что значит нету????? написано же если Table1.ID = Table2.ID Тогда Table3.Quant = Table1.Quant - Table2.Quant. Если в Table2 Нет вообще строки с ID = Table1.ID Тогда Table3.Quant = Table1.Quant все так и написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 14:26 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
firerer 2)Выбрать все значения из получившейся Table3. в итоге должна получится Table4 = Table3 за исключением строк в которых Table2.ID = Table3.ID. в этих строках Quant = Table3.Quant - Table2.Quant У меня получается отобрать только те строки в которых ID равны. как сделать??? Если я правильно понял в тех строках где Table2.ID = Table3.ID нужно заменить Quant на Table1.Quant - Table2.Quant Select IIF(Table2.ID = Table3.ID ,T1.Quant,Table1.Quant - Table2.Quant )... Попробуй может получится:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 14:28 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
firerer AleksMed firerer AleksMedЭтот запрос выберет записи из таблицы 1 у которых Quant>0 и идентификаторых которых отсутствуют в таблице 2. Т.е выполнится вот это: там продолжение: "в этих строках Quant = Table3.Quant - Table2.Quant " в этом продолжении вся загвоздка Этих идентификаторов нету в Table2. Что ты хочешь вычитать? :) Или неправильно описана задача. что значит нету????? написано же если Table1.ID = Table2.ID Тогда Table3.Quant = Table1.Quant - Table2.Quant. Если в Table2 Нет вообще строки с ID = Table1.ID Тогда Table3.Quant = Table1.Quant все так и написал. Кто понял это с первого раза, поднимите руки? Про остальное Володя Максимов уже написАл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 14:29 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
2 firerer чем тебя не устроило: ВладимирМ Код: plaintext 1. 2. 3. 4. 5. 6. а проблему надо вразумительней описывать, а то все изначально поняли совсем не то что ты имел ввиду. не хватает слов - приводи примеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 14:32 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
AleksMed Кто понял это с первого раза, поднимите руки? Про остальное Володя Максимов уже написАл. звиняюсь за сумбурность. с терминологией пока проблемы. То что написал Владимир мне бы помогло наверное если бы драйвер поддерживал функцию NVL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 14:33 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Какой драйвер? В чем таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 14:35 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Dima TКакой драйвер? В чем таблицы? "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=c:database" таблицы Dbf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 14:40 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
подключаюсь через ODBC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 14:41 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
firererподключаюсь через ODBC Из чего подключаешься? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 14:44 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
AleksMed Из чего подключаешься? разве это принципиально? 1С ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 14:45 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
На крайняк при обработке - если Quant2 = NULL то брать Quant1 иначе Quant2 Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 14:51 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Функция NVL() эквивалентна такой конструкции Код: plaintext Так что можешь попробовать написать так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 14:51 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33567804&tid=1592210]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
167ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 521ms |

| 0 / 0 |
