|
|
|
SELECT * DISTINCT F1,F2,F3 FROM TABLE1. Возможно?
|
|||
|---|---|---|---|
|
#18+
Пытался уже задать этот вопрос... но видимо меня не поняли. Работаю из Excel/VBA через ADO/OLEDB с базами в DBF. Т.е. синтаксис запросов, как я понимаю, OLE DB-шный (где найти по нему доки?). Можно ли сделать такую вещь, как я написал в сабже? Т.е. вывести все поля из таблицы, но отобрать записи различающиеся по трем полям. Какой SQL-конструкцией возможно реализовать такой функционал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 11:11 |
|
||
|
SELECT * DISTINCT F1,F2,F3 FROM TABLE1. Возможно?
|
|||
|---|---|---|---|
|
#18+
DISTINCT выбирает уникальные ЗАПИСИ!!! а не поля в записях. Вам больше подойдет GROUP BY + агрегатные функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 12:35 |
|
||
|
SELECT * DISTINCT F1,F2,F3 FROM TABLE1. Возможно?
|
|||
|---|---|---|---|
|
#18+
Пробовал. Не выходит. Дело в том, что нельзя написать Код: plaintext 1. 2. 3. 4. 5. Как обойти эту ситуацию - я не придумал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 13:39 |
|
||
|
SELECT * DISTINCT F1,F2,F3 FROM TABLE1. Возможно?
|
|||
|---|---|---|---|
|
#18+
а чем вас не устраивает такой запрос?: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 14:12 |
|
||
|
SELECT * DISTINCT F1,F2,F3 FROM TABLE1. Возможно?
|
|||
|---|---|---|---|
|
#18+
savosin_sergeyа чем вас не устраивает такой запрос?: Код: plaintext 1. 2. 3. 4. 5. А зачем мне группировать еще и по f1,f2,f3? Мне ж их просто вывести надо. Я не знаток SQL, и тем более не знаток тонкостей работы его реализаций. Посему я себе совершенно не представляю эффект от подобного запроса. Сейчас проэксперементирую. Мне тут подсказали функцию first(field), предназначенную чтобы взять значение первой записи в группировке. Да только все равно запрос считает цифры как-то не так :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 15:35 |
|
||
|
SELECT * DISTINCT F1,F2,F3 FROM TABLE1. Возможно?
|
|||
|---|---|---|---|
|
#18+
Попробовал. Не подходит :( Похоже что он сгруппировал вообще все записи, в которых хоть какие-то поля совпадают. Или что-то в этом роде :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 15:44 |
|
||
|
SELECT * DISTINCT F1,F2,F3 FROM TABLE1. Возможно?
|
|||
|---|---|---|---|
|
#18+
point212Попробовал.Ты бы показал небольшую табличку для пояснения что у тебя есть и что ты хочешь получить, может и другие смогут попробовать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2006, 07:35 |
|
||
|
SELECT * DISTINCT F1,F2,F3 FROM TABLE1. Возможно?
|
|||
|---|---|---|---|
|
#18+
AsPiro point212Попробовал.Ты бы показал небольшую табличку для пояснения что у тебя есть и что ты хочешь получить, может и другие смогут попробовать... Да вот в этой теме пытался. Таблички у меня две:REPORT и SUMMARY_DATA. SUMMARY_DATA собирается из 4х UNION'ами. В обоих табличках есть по три поля для связи. Плохо только то, что в обоих таблицах комбинации этих трех полей не уникальный. То есть могут быть две записи одинаковые по всем трём полям. Причем как в первой таблице, так и во второй. Надо сделать что-то вроде этого: (в голове все сразу не могу уместить, синаксис SQL не соблюдён) SUMMARY_DATA=SELECT NOMK_LS,CPFS,SERNUMB,SUM(KO_ALL),SUM(FS_ALL) FROM (тут UNION'ы...) GROUP BY NOMK_LS,C_PFS,SERNUMB (с этим вроде бы проблем нет) REPORT=SELECT * FROM REPORT GROUP BY NOMK_LS,CPFS,SERNUMB ( но так вроде бы нельзя, поэтому я и пытаюсь выяснить как сделать сабж ) Теперь значится я хочу получить RESULT=SELECT REPORT.*, SUMMARY_DATA.KO_ALL,SUMMARY_DATA.FS_ALL FROM REPORT JOIN SUMMARY_DATA ON REPORT.NOMK_LS=SUMMARY_DATA.NOMK_LS,REPORT.CPFS=SUMMARY_DATA.C_PFS,REPORT.SERNUMB=SUMMARY_DATA.SERNUMB Ну и напоследок надо как-то объеденить REPORT с RESULT, чтобы все записи были показаны, но только в первом вхождении каждой были данные в полях KO_ALL и FS_ALL. Вот. Все бы так, да только не работает :( Потому что синтаксис SQL такого не позволяет или я не знаю как написат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2006, 10:07 |
|
||
|
SELECT * DISTINCT F1,F2,F3 FROM TABLE1. Возможно?
|
|||
|---|---|---|---|
|
#18+
point212А зачем мне группировать еще и по f1,f2,f3? Мне ж их просто вывести надо.Просто так, наверное. Тебе говорят уже в который раз, а ты лбом в стену упёрся. "Просто вывести" без группировки? А если в этих полях РАЗНЫЕ значения, то что делать? Брать первую? Меньшую? Но это агрегаты. Значит, наверное, списком через запятую? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2006, 11:58 |
|
||
|
SELECT * DISTINCT F1,F2,F3 FROM TABLE1. Возможно?
|
|||
|---|---|---|---|
|
#18+
WildSery point212А зачем мне группировать еще и по f1,f2,f3? Мне ж их просто вывести надо.Просто так, наверное. Тебе говорят уже в который раз, а ты лбом в стену упёрся. "Просто вывести" без группировки? А если в этих полях РАЗНЫЕ значения, то что делать? Брать первую? Меньшую? Но это агрегаты. Значит, наверное, списком через запятую? Да вроде бы нигде не упирался. Первое надо. Первое. Да только вот first(fn) не катит. Совсем не те цифры получаются. Что-то он не то сворачивает, имхо :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2006, 13:22 |
|
||
|
SELECT * DISTINCT F1,F2,F3 FROM TABLE1. Возможно?
|
|||
|---|---|---|---|
|
#18+
Запросом можно так Код: plaintext 1. 2. 3. 4. 5. Если поддерживается select from select, то ещё проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2006, 15:16 |
|
||
|
SELECT * DISTINCT F1,F2,F3 FROM TABLE1. Возможно?
|
|||
|---|---|---|---|
|
#18+
Боже мой, как страшно то. А если полей штук 20... это каким же тормозом станет запрос :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2006, 10:24 |
|
||
|
|

start [/forum/topic.php?fid=56&msg=34109444&tid=2016288]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 346ms |

| 0 / 0 |
