|
|
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
Делаю Код: plaintext 1. 2. 3. 4. 5. 6. Причем каждому Messages.MessageID может соответствовать несколько записей в Queue c этим с Queue.MessageID = Messages.MessageID!!! Как отобрать только неповторяющиеся записи из полученного Recordset'а/Table'а??? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 18:07:00 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 18:22:25 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
А они и так не повторяются, потому что записи различаются полем Queue.QueueID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 18:26:06 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
Можно так, но различение будет идти по двум столбцам messages.messageid, Messages.[Text] Код: plaintext 1. 2. 3. 4. Если убрать Messages.[Text] Код: plaintext 1. Но уж тогда лучше Код: plaintext 1. 2. Таким образом вопрос: Что для Вас неповторяющаяся запись? по messages.messageid или(и) по Messages.[Text]? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 18:26:24 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
Неповторяющаяся запись - запись, у кот. отличаются MessageID. P.S.: QueueID - PK, и хочется не убирать [Text]... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 18:34:28 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
Сперва реши, что делать с различными QueueID в "повторяющихся" записях, тогда вопрос отпадет сам собой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 18:38:16 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
Сперва реши, что делать с различными QueueID в "повторяющихся" записях, тогда вопрос отпадет сам собой. А что с ними надо делать? Они в результирующую таблицу не должны попасть! Или я не очень понял Вас? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 18:40:40 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
Я сделал так (вроде бы всё правильно, но... ->): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Но QA выдает: Invalid object name 'Results'. What's wrong? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 18:47:29 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
Мда, видно вечер сказывается. Если QueueID не должно попасть в результирующую выборку, то почему это поле перечислено в SELECT в качестве 3-ей колонки после [Text]? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 18:54:26 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
Т.е. надо получить только одну запись по messages.messageid и при ней должен быть произвольный Messages.[Text]? Зачем произвольный текст? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 18:56:19 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
Это для наглядности запроса и для показа того, что есть PK в виде QueueID, может кому-нибудь, кто смог бы мне дать решение это поле понадобилось... Так что мне делать-то??? Как решить проблему-то? Кстати, через создание переменной типа table вида Код: plaintext 1. 2. 3. 4. 5. не хочется делать, т.к. приходится описывать все возвращаемые поля recordset'а ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 19:05:19 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
select* from messages where MessageId in (select MessageId from Queue) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 19:10:13 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
2Лëля Messages.[Text] - одинаковый для одного MessageID. Но в выводимых записях повторяются Queue.MessageID... привожу пример того, что выводится после запроса Код: plaintext 1. 2. 3. 4. 5. 6. messageid Text DeliveryID ----------- -------------------------------------------------- ----------- 1 С добрым утром! 1 С добрым утром! 2 С добрым утром 2! 2 С добрым утром 2! 3 С добрым утром! 333 4 С добрым утром! 444 (10 row(s) affected) (на самом деле помимо всех указанных полей выводится ещё с 10 полей - в запросе ещё куча inner join'ов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 19:16:35 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
Ой, не 10 rows affected, а 6 Сорри! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 19:18:13 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, я поняла наборот, что Queue и Message один ко многим Попробуйте Код: plaintext 1. 2. Конечно, это не грамотно, но демонстрирует связи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 19:45:48 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, я поняла наборот, что Queue и Message один ко многим Попробуйте select Messages.messageid,Messages.[Text] from Messages Where Messages.messageid in (select distinct Queue.MessageID from Queue) Конечно, это не грамотно, но демонстрирует связи Да это всё можно сделать без труда и вложенными запросами вышеприведённого Вами типа, но на 10 и более таблицах, которые связываются по ключевым и FK-полям, размерами в несколько десятков миллионов записей этот запрос будет длится несколько минут (а может и более), а с inner join'ом это несомненно будет в несколько раз быстрее и правильнее. Хотелось бы решить проблему, используя конструкции inner (left/right outer) join... И тем более - время на выполнение данного запроса должно укладываться в реальный промежуток времени (несколько (десятков) секунд), т.к. запрос производится чуть ли не каждые 10-15 минут... P.S.: Может данная проблема и не имеет решения, если использовать join'ы??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 19:54:20 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
Если у вас "каждому Messages.MessageID может соответствовать несколько записей в Queue c этим с Queue.MessageID = Messages.MessageID", то каую запись из Queue вам надо отображать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 20:09:31 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
Извини, но я не понимаю чем тебя DISTINCT не устраивает? Ведь он именно и отсечет все записи с абсолютно одинаковым содержимым. Т.е. вместо приведенного тобой результата messageid Text DeliveryID ----------- -------------------------------------------------- ----------- 1 С добрым утром! 1 С добрым утром! 2 С добрым утром 2! 2 С добрым утром 2! 3 С добрым утром! 333 4 С добрым утром! 444 ты получишь messageid Text DeliveryID ----------- -------------------------------------------------- ----------- 1 С добрым утром! 2 С добрым утром 2! 3 С добрым утром! 333 4 С добрым утром! 444 Если это не то, что тебе надо, то ты лучше приведи по несколько записей из обоих таблиц и какой результат тебе надо получить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 20:11:29 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
>Хотелось бы решить проблему, используя конструкции inner (left/right outer) join... В чем проблема- загадка, но хочется с join... Ловите (пусть люди не смеются) Код: plaintext 1. 2. 3. Есть все: и join и distinct если хотите right - это слово можно использовать вместо inner- результат будет такой же A вот с left результат м.б. немного другим.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2002, 10:45:09 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
Да, этот вышепредложенный код работает правильно, однако вот этот код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. всё-равно выводит строки с повторяющимися MessageID: DeliveryID pagernum pagerid domain nmessage begintime internalnum externalnum opid messageid Text ----------- --------------- ----------- ------------------------- ----------- -------------------------------------------------- ----------- --------------- ---- ----------- -------------------------------------------------- 1691456 970020111 27646 flextel.ru 1190096 2002-10-22 11:35:25.000 9700201 2570688 23 3512951 Миша, перезвони, пожалуйста, в "Юнион пейдж". Надя 1691457 970020111 27646 flextel.ru 1190096 2002-10-22 11:35:25.000 9700201 2570688 23 3512951 Миша, перезвони, пожалуйста, в "Юнион пейдж". Надя 1691458 970020111 27646 flextel.ru 1190096 2002-10-22 11:35:25.000 9700201 2570688 23 3512951 Миша, перезвони, пожалуйста, в "Юнион пейдж". Надя 1718644 970020111 27646 flextel.ru 1237888 2002-10-29 14:58:36.000 9700201 9299499 66 3528717 Запреты на 30.10 - 0912 0922 1044 1054, выдал Кузь 1718645 970020111 27646 flextel.ru 1237888 2002-10-29 14:58:36.000 9700201 9299499 66 3528717 Запреты на 30.10 - 0912 0922 1044 1054, выдал Кузь 1718646 970020111 27646 flextel.ru 1237888 2002-10-29 14:58:36.000 9700201 9299499 66 3528717 Запреты на 30.10 - 0912 0922 1044 1054, выдал Кузь 1722829 970020111 27646 flextel.ru 1245062 2002-10-30 15:15:37.000 9700201 9407056 93 3531086 тест <9407056> 1722827 970020111 27646 flextel.ru 1245062 2002-10-30 15:15:37.000 9700201 9407056 93 3531086 тест <9407056> 1722828 970020111 27646 flextel.ru 1245062 2002-10-30 15:15:37.000 9700201 9407056 93 3531086 тест <9407056> 1722834 970020111 27646 flextel.ru 1245089 2002-10-30 15:17:22.000 9700201 9407056 67 3531090 тест<9407056> 1722835 970020111 27646 flextel.ru 1245089 2002-10-30 15:17:22.000 9700201 9407056 67 3531090 тест<9407056> 1722836 970020111 27646 flextel.ru 1245089 2002-10-30 15:17:22.000 9700201 9407056 67 3531090 тест<9407056> 1754233 970020111 27646 flextel.ru 1311163 2002-11-09 14:18:34.000 9700201 9299499 29 3549238 Звонил Соболев из Радиоскан. Передал на 10.11 запр 1754234 970020111 27646 flextel.ru 1311163 2002-11-09 14:18:34.000 9700201 9299499 29 3549238 Звонил Соболев из Радиоскан. Передал на 10.11 запр 1754235 970020111 27646 flextel.ru 1311163 2002-11-09 14:18:34.000 9700201 9299499 29 3549238 Звонил Соболев из Радиоскан. Передал на 10.11 запр (15 row(s) affected) Так где же всё-таки копать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2002, 15:51:36 |
|
||
|
Что-то типа DISTINCT...
|
|||
|---|---|---|---|
|
#18+
Посмотрите внимательно на результаты по столбцам. DeliveryID - каждый раз другой. Вот этим записи и различаются. Попробуйте убрать этот столбец из запроса. ---------- А также будьте внимательны с полем begintime Попробуйте не использовать эти 2 поля в своем запросе (и при группировке тоже) и потом смотрите результат Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2002, 16:08:50 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3373&tid=1818652]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
20ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
79ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 333ms |

| 0 / 0 |
