Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
07.11.2008, 11:04
|
|||
---|---|---|---|
|
|||
Помогите составить запрос. |
|||
#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.
На выходе получаю Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
хочется получить эти же поля, но дергать максимальную дату на каждое поле r_kod и делать проверку на соответствие in_pkod='А01'. (!)Временную таблицу не создать. Голову сломал! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2008, 13:37
|
|||
---|---|---|---|
Помогите составить запрос. |
|||
#18+
Сложно понять, что должен делать нужный тебе запрос по приведённому запросу, который делает не то что нужно :) :( Лучше приводить структуру таблиц и "словами сформулированный" запрос... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2008, 14:05
|
|||
---|---|---|---|
|
|||
Помогите составить запрос. |
|||
#18+
Ок. попробую так) Есть две таблицы. invoice - шапки накладных goods_r - тело накладных связаны по in_key и r_key соответственно. in_ttype - тип накладной. "1" символизирует приход. in_pkod - код поставщика. r_kod - товар. (!)Один и тот же товар могут поставлять разные поставщики. Задача: Выбрать весь товар, последним поставщиком которого является поставщик с кодом "А01" ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2008, 15:34
|
|||
---|---|---|---|
Помогите составить запрос. |
|||
#18+
Версия IDS, чтоб мы знали возможности вашего SQL :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2008, 16:08
|
|||
---|---|---|---|
|
|||
Помогите составить запрос. |
|||
#18+
серверов очень много и разные версии. низшая - 7.30.UC10 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2008, 16:30
|
|||
---|---|---|---|
|
|||
Помогите составить запрос. |
|||
#18+
Что-то этакое можно попробывать использовать Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2008, 16:58
|
|||
---|---|---|---|
|
|||
Помогите составить запрос. |
|||
#18+
ollegЧто-то этакое можно попробывать использовать Код: plaintext 1.
Да не) Я чего только не перепробывал. в этом случае вернется одна дата - максимальная. А мне то нужно для каждого товара. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2008, 17:12
|
|||
---|---|---|---|
Помогите составить запрос. |
|||
#18+
Для 7.3 думаю без временных таблиц лучше не пытаться, там извратов с set-ом нет. Вообще, запрос реален, но сугубо в академических целях. Если данных маломальски много, я бы даже не пытался. Для упрощения, подготовьте sql создающий таблички, тестовые данные и результат, которые хочется получить. Если вы датите честное слово, что потом все таки переделаете на временную таблицу, я вам сделаю изврат. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2008, 17:17
|
|||
---|---|---|---|
Помогите составить запрос. |
|||
#18+
SELECT r_kod, max(in_date) FROM invoice, goods_r WHERE in_ttype=1 AND in_key=r_key AND in_pkod = 'A01' GROUP BY r_kod ORDER BY r_kod ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2008, 17:22
|
|||
---|---|---|---|
|
|||
Помогите составить запрос. |
|||
#18+
Daugava , спасибо за ответ! Тоже думал что нереализуемо, но надежда умирает последней) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2008, 17:25
|
|||
---|---|---|---|
|
|||
Помогите составить запрос. |
|||
#18+
Daugava , на временную переделать не получится 100 процентно) User БД дан с жесткими ограничениями расширить которые не представляется возможным. авторДля упрощения, подготовьте sql создающий таблички, тестовые данные и результат, которые хочется получить. т.е. все же можно в один запрос нужные мне данные? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2008, 17:53
|
|||
---|---|---|---|
Помогите составить запрос. |
|||
#18+
А написать свою процедуру нельзя? Еще одно, у товаров и накладных id надеюсь есть? Или в течение дня один товар может быть поставлен только одним поставщиком и только один раз? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2008, 18:11
|
|||
---|---|---|---|
Помогите составить запрос. |
|||
#18+
Ivan_kezОк. попробую так) Есть две таблицы. invoice - шапки накладных goods_r - тело накладных связаны по in_key и r_key соответственно. in_ttype - тип накладной. "1" символизирует приход. in_pkod - код поставщика. r_kod - товар. (!)Один и тот же товар могут поставлять разные поставщики. Задача: Выбрать весь товар, последним поставщиком которого является поставщик с кодом "А01" Приблизительно так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
но работать может долго . ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2008, 20:14
|
|||
---|---|---|---|
Помогите составить запрос. |
|||
#18+
onstat-но работать может долго . помогло? если нет - то вопрос "r_key - это точно поле внешнего ключа в таблице goods_r на таблицу invoice?" если помогло но ОЧЕНЬ медленно - возможно нет "правильных" индексов... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.11.2008, 11:22
|
|||
---|---|---|---|
|
|||
Помогите составить запрос. |
|||
#18+
Спасибо за помощь! У Вас запрос был написан с небольшими помарками. Я исправил авторselect r_kod, in_date, in_pkod from goods_r r1, invoice i1 where i1.in_key=r1.r_key and i1.in_pkod= 'А01' and in_date = ( select max(in_date) from goods_r r2, invoice i2 where i2.in_key=r2.r_key and i1.in_pkod=i2.in_pkod and r1.r_kod=r2.r_kod ) работает действительно долго, но при этом еще и некорректно(. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.11.2008, 11:35
|
|||
---|---|---|---|
Помогите составить запрос. |
|||
#18+
Ivan_kezСпасибо за помощь! У Вас запрос был написан с небольшими помарками. Я исправил авторselect r_kod, in_date, in_pkod from goods_r r1, invoice i1 where i1.in_key=r1.r_key and i1.in_pkod= 'А01' and in_date = ( select max(in_date) from goods_r r2, invoice i2 where i2.in_key=r2.r_key and i1.in_pkod=i2.in_pkod and r1.r_kod=r2.r_kod ) работает действительно долго, но при этом еще и некорректно(. За некорректность прошу прощения, там действительно опечатка есть. А вот на счет не правильно , тут можно поспорить, запрос работает в соответствии с поставленной Вами задачей. Целью моего примера было показать Вам, что при данной постановке задачи можно использовать коррелированный подзапрос в запросе. Зная что его можно использовать добиться правильности это уже Ваша работа, Вам за нее деньги платят. Вопрос скорости это уже другая тема, я предупреждал, что может быть долго, так как неизвестно какие индексы у Вас там построены. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.11.2008, 11:43
|
|||
---|---|---|---|
Помогите составить запрос. |
|||
#18+
Ivan_kezработает ... некорректно(. AnatoLoyr_key - это точно поле внешнего ключа в таблице goods_r на таблицу invoice? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.11.2008, 12:15
|
|||
---|---|---|---|
|
|||
Помогите составить запрос. |
|||
#18+
Дело в том что я топтался в самом начале возле того же) Как раз таки я пока не знаю как наложить условие что именно А01 является последним поставщиком . Буду признателен если покажите в какую сторону смотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.11.2008, 12:17
|
|||
---|---|---|---|
|
|||
Помогите составить запрос. |
|||
#18+
АнатоЛойIvan_kezработает ... некорректно(. AnatoLoyr_key - это точно поле внешнего ключа в таблице goods_r на таблицу invoice? абсолютно! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.11.2008, 12:19
|
|||
---|---|---|---|
Помогите составить запрос. |
|||
#18+
Вопрос жуется с пятницы. Однако таки все таки воспользуйтесь советом из ФАК-а. Создайте тестовый пример и поместите здесь. Мне лично не лень поэксперементировать с запросом, но подготавливать данные для него облом, тем более, если в итоге окажется, что я неправильно понял ваше описание структуры таблиц. Опять таки, мой вопрос остался без ответа. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.11.2008, 12:39
|
|||
---|---|---|---|
|
|||
Помогите составить запрос. |
|||
#18+
2 Автор внешнее левое соединение тебе в помощь... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.11.2008, 12:58
|
|||
---|---|---|---|
|
|||
Помогите составить запрос. |
|||
#18+
DaugavaА написать свою процедуру нельзя? Еще одно, у товаров и накладных id надеюсь есть? Или в течение дня один товар может быть поставлен только одним поставщиком и только один раз? процедуру написать невозможно ибо нет прав. в таблице invoice (таблица шапок накладных) id - in_key в таблице goods_r (таблица тел накладных) уникальных полей нет. Товар может поставляться сколько угодно раз любым поставщиком. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.11.2008, 14:39
|
|||
---|---|---|---|
Помогите составить запрос. |
|||
#18+
1. Покажите в чём некорректность запроса, привдённого "onstat-"... 2. Добавьте в запрос алиасы ко всем именам столбцов... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.11.2008, 16:48
|
|||
---|---|---|---|
|
|||
Помогите составить запрос. |
|||
#18+
некорректно отрабатывает - не выполняется условие Выбрать весь товар, последним поставщиком которого является поставщик с кодом "А01" т.е. выбирается товар поставщика А01,а за тем из него цепляется максимальная дата. Задача немного в другом... Поставщиков много и один товар могут поставлять 3 (или более) поставщика Код: plaintext 1. 2.
Код: plaintext 1. 2.
Алиасы добавил! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.11.2008, 17:26
|
|||
---|---|---|---|
Помогите составить запрос. |
|||
#18+
Ivan_kezЗадача немного в другом... Мы от Вас и добиваемся постановки этой задачи :) Ivan_kez Поставщиков много и один товар могут поставлять 3 (или более) поставщика Код: plaintext 1. 2. 3.
Код: plaintext 1. 2.
В обоих примерах - последним поставшиком исходя из даты был Ы22.... Спокойно соберитесь с мыслями - и не спеша напишите постановку задачи с примерами ... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=44&tablet=1&tid=1607959]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 184ms |
0 / 0 |