|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
Всем добрый день! Нашел в инете функцию: Public Function UnionStr(Optional id, Optional Fam) Static IDOld, FamUnion If IsMissing(id) Then IDOld = Empty Exit Function End If If IDOld <> id Then IDOld = id FamUnion = Null End If FamUnion = (FamUnion + ", ") & Fam UnionStr = FamUnion End Function она данные из столбца "загоняет" в строку через запятую. данные: тип Дата но в этой строке встречаются дубликаты. эта функция работает в достаточно запутанном) запросе: SELECT ПаспортКачестваДизайн.КодПаспорта, ПаспортКачестваДизайн.Номер, ПаспортКачестваДизайн.МаркаОболочки, ПаспортКачестваДизайн.КолвоОтгрузки, Оболочка.Диаметр, Оболочка.Цвет, Дизайны.Дизайн, ПаспортКачестваДизайн.КолКоробов, ПаспортКачестваДизайн.КолРулонов, ЗаявкиНаПечать.КодЗаявкиНаПечать, Цвета.Текст_РУС, Цвета.Текст_ПОЛ, Цвета.Текст_ЛИТ, Цвета.Текст_АНГ, Клиенты.Клиент, Дизайны.КодДизайна, Last(UnionStr([ЗаявкиНаПечать]![КодЗаявкиНаПечать],[Рулоны]![Дата])) AS Data FROM (Цвета INNER JOIN Оболочка ON (Цвета.Цвет = Оболочка.Цвет) AND (Цвета.Цвет = Оболочка.Цвет)) INNER JOIN ((((Дизайны INNER JOIN Клиенты ON Дизайны.КодКлиента = Клиенты.КодКлиента) INNER JOIN ЗаявкиНаПечать ON Дизайны.КодДизайна = ЗаявкиНаПечать.КодДизайна) INNER JOIN ПаспортКачестваДизайн ON ЗаявкиНаПечать.КодЗаявкиНаПечать = ПаспортКачестваДизайн.КодЗаявкиНаПечать) INNER JOIN (ПечатьДизайнов INNER JOIN Рулоны ON ПечатьДизайнов.КодПечати = Рулоны.КодПечати) ON ЗаявкиНаПечать.КодЗаявкиНаПечать = ПечатьДизайнов.КодЗаявкиНаПечать) ON Оболочка.КодОболочки = ЗаявкиНаПечать.КодОболочки GROUP BY ПаспортКачестваДизайн.КодПаспорта, ПаспортКачестваДизайн.Номер, ПаспортКачестваДизайн.МаркаОболочки, ПаспортКачестваДизайн.КолвоОтгрузки, Оболочка.Диаметр, Оболочка.Цвет, Дизайны.Дизайн, ПаспортКачестваДизайн.КолКоробов, ПаспортКачестваДизайн.КолРулонов, ЗаявкиНаПечать.КодЗаявкиНаПечать, Цвета.Текст_РУС, Цвета.Текст_ПОЛ, Цвета.Текст_ЛИТ, Цвета.Текст_АНГ, Клиенты.Клиент, Дизайны.КодДизайна ORDER BY ПаспортКачестваДизайн.Номер; фрагмент результата запроса на фото. может подскажите как их убрать? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 13:25 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
Убрать дубликаты дат)) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 13:26 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
Не убрать, а не "загонять" Код: vbnet 1. 2. 3.
. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 13:35 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
Public Function UnionStr(Optional id, Optional Fam) Static IDOld, FamUnion If IsMissing(id) Then IDOld = Empty Exit Function End If If IDOld <> id Then IDOld = id FamUnion = Null End If If InStr(FamUnion, Fam) = 0 Then FamUnion = (FamUnion + ", ") & Fam End If UnionStr = FamUnion End Function Правильно разместил? если да, то вообще ни какой даты не отображает( ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 13:47 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
taranoff, А, не то, простите. Ведь там FamUnion = Null каждый раз. Не посмотрела внимательно, решила, что полная строка формируется в UnionStr. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 14:02 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
taranoff, Вы не могли бы оформить запрос и функцию тегами, а то очень неудобно разбираться. Пункт SRC, подпункты VBA или T-SQL. Предварительно выделить нужный фрагмент. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 14:10 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
Так попробуйте: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 14:20 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
__Michelletaranoff, Вы не могли бы оформить запрос и функцию тегами, а то очень неудобно разбираться. Пункт SRC, подпункты VBA или T-SQL. Предварительно выделить нужный фрагмент. к сожалению так досконально этим вопросом не владею( что такое: Пункт SRC, подпункты VBA или T-SQL.? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 14:36 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
taranoff, думаю тут вариант: функцию доработать, чтобы она дубликаты "не трогала")) а запрос сейчас один, потом другой... функция полезная))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 14:38 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
Анатолий ( Киев )Так попробуйте: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
с таким вариантом запрос не выполняется вообще( ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 14:40 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
taranoff__Michelletaranoff, Вы не могли бы оформить запрос и функцию тегами, а то очень неудобно разбираться. Пункт SRC, подпункты VBA или T-SQL. Предварительно выделить нужный фрагмент. к сожалению так досконально этим вопросом не владею( что такое: Пункт SRC, подпункты VBA или T-SQL.?Когда пишете сообщение, посмотрите на панель инструментов над окном сообщения, там увидите среди прочего комбобокс SRC с такими подпунктами. И еще много чего увидите, но это уже потом будете рассматривать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 15:07 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4.
Так? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 15:12 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
taranoff, а так: ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 15:14 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
но думаю всё-таки надо с функцией разбираться)) запрос достаточно запутанный)) а в след. раз будет другой запрос с этой функцией)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 15:15 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
sdkutaranoff, а так: на одной таблице все отл. работает))) а если в запросе 5-6 таблиц и группировка идет не по тому параметру?)) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 15:18 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
__MichelleНе убрать, а не "загонять" Код: vbnet 1. 2. 3.
.Сбило с толку это Fam. А ведь там дата. Попробуйте так Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 15:42 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
__Michelle, ни какую дату не выводит( вот, немного упорядочил, может поможет)) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 15:50 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
taranoff, Поставьте, пожалуйста, это перед конкатенацией Код: vbnet 1.
И выложите сюда то, что вышло в окне Immediate. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 16:13 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
__Michelle, ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 16:17 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
не все даты вошли))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 16:20 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
taranoff, А теперь так попробуйте Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 16:24 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
taranoffна одной таблице все отл. работает))) а если в запросе 5-6 таблиц и группировка идет не по тому параметру?)) а эта функция и не будет работать при группировке по другому параметру Ищите другие пути-несколько запросов, заполнять рекордсет ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 16:28 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
__Michelletaranoff, А теперь так попробуйте Код: vbnet 1.
похоже, заработало))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 16:30 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
taranoff, Да, 11.09.2016 отсеклось, я вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 16:34 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
__Michelletaranoff, Да, 11.09.2016 отсеклось, я вижу. ок. спасибо за помощь, потестирую ...) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 16:37 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
taranoff__Michelletaranoff, Да, 11.09.2016 отсеклось, я вижу. ок. спасибо за помощь, потестирую ...) еще раз спасибо, работает! а такой вопрос: а можно эту дату отсортировать по возрастанию?) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 16:44 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
taranoff, Может быть, так? Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 16:49 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
__Michelletaranoff, Может быть, так? Код: sql 1.
неа, это не работает. выдает ошибку ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 16:55 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
taranoff, Ну, тогда в функции можно получившемуся FamUnion делать Split, затем сортировать массив и уже отсортированному массиву делать Join. Эту строку и будет возвращать функция. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 17:01 |
|
Убрать дубликаты в запросе из результата функции)))
|
|||
---|---|---|---|
#18+
__Michelletaranoff, Ну, тогда в функции можно получившемуся FamUnion делать Split, затем сортировать массив и уже отсортированному массиву делать Join. Эту строку и будет возвращать функция. Спасибо! Буду пробовать) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 19:53 |
|
|
start [/forum/topic.php?all=1&fid=45&tid=1613132]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 369ms |
total: | 498ms |
0 / 0 |