|
|
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Уважаемые Господа, простая на первый взгляд задача оказалась весьма проблематичной. Есть база (IB) и клиентская программа написанная на Delphi (FIB+). В базе есть таблица примерно с такой условной структурой: Код : Integer Код_Склада : Integer Код_Товара : Integer Количество : Integer .... и еще несколько полей, которые в данный момент не важны. Данные по всем складам (число складов чуть болше 60) для всех категорий товара (больше 5000) хранятьтся в одной таблице, один и тотже товар (поле Код_Товара) имеется на нескольких разных складах (поле Код_склада) в разном количестве (поле Количество), может быть Количество=0. Необходимо сделать выборку из таблицы для товара (Код_Товара) имеющегося на одном складе (условно большом) и отсутствующего на другом (условно малом). IB и SQL я практически не знаю, с Delphi правда получше, поэтому первая мысль была такая: "Ну это просто..." A - номер "большого" склада В - номер "малого" склада SELECT ... WHERE SKLAD_CODE=А AND SKLAD_CODE<>B AND C_OSTAT>0; примерно через полчаса я понял какую глупость написал и то, что одним Select не обойтись :( В общем большая просьба к почтенной публике, помогите советом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 12:37 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Select ..... where (sklad_code=A) and (kod_tovar not in (select kod_tovar .... where sklad_code=B)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 13:05 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
А потом долго биться головой об стенку, пока не запомнишь, что: КОНСТРУКЦИЯ WHERE NOT IN (SELECT...) НЕЭФФЕКТИВНА ! (в силу архитектурных особенностей InterBase) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 13:43 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
По моему, Мимопроходящий умничает за наш, за ламерский, счет. "Неэффективна" - а как надо-то - не говорит! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:01 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
МОЖЕТ ТАК ? Код: plaintext 1. 2. 3. 4. Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:03 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий - всегда отсылает к документации !!! Его ответы можно даже не читать ... Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:04 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Помимо документации я могу отсылать и сюда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:11 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, вот пожалуемся на тебя модератору, что ты такой гад! Теперь не хочеться заходить на этот форум из-за тебя! Спросишь чтонибудь, а тебя накй пошлют ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:13 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Сходил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:14 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
SSB777Необходимо сделать выборку из таблицы для товара (Код_Товара) имеющегося на одном складе (условно большом) и отсутствующего на другом (условно малом)...одним Select не обойтись Ответ заключается в вопросе. Вот один из вариантов (и весьма быстрый) Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:19 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
На ПТ? Нормальным пацанам тем делать нечего (почти) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:19 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Вижу нормальные пацаны типа тебя предпочитают трепаться и самоутверждаться на профессиональных форумах! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:21 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
2FreemanZAV: Не, не катит. Ему нужно найти только тот товар , который есть на складе А и отсутсвует на складе В ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:21 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
А че такое ПТ и как ставить смайлики в тексте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:22 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
2dalai lamer: И кто начал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:22 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Я не самоутверждался и не издевался над задающими вопросы! Я лишь поднял тему о твоем поведении! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:24 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
А все боятся меня поддержать, потому что ты грубо ответишь! зы. где модератор?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:24 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
ПТ - это тут А смайлик на этом сайте только один (почему-то) Рисуешь так: Код: plaintext Получается так - ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:25 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Точняк. Не катит. Получается не И а ИЛИ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:27 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Простите Господа, но Вы отвлеклись от темы :-) Отдельно спасибо ответившим конструктивно , вечером буду пробовать, завтра смогу описать результат. Опять же отдельно вопрос Мимопроходящему, а что значит НЕЭФФЕКТИВНА? не работает? работает медленно? работает неправильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:28 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
SSB777 Я немного подумал и вот кажется самое то, что нужно Код: plaintext 1. 2. 3. 4. Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:32 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
автора что значит НЕЭФФЕКТИВНА? Вот это уже другой разговор. Дела в том, что IB при выполнении запроса типа WHERE ... [NOT] IN (SELECT...) не кеширует результаты подзапроса. И как следствие, этот запрос будет дёргаться каждый раз заново, для каждой записи фильтруемой таблицы. Как следствие, производительность такой конструкции очень низкая и её следует избегать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:33 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
> Вот это уже другой разговор. Это ты решил разжевать не потому что тебя "правильно" спросили, а потому что моя критика снизу на тебя подействовала! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:38 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=474&tid=1578731]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 424ms |

| 0 / 0 |
