|
Запрос JOIN
|
|||
---|---|---|---|
#18+
Помогите составить запрос: Есть 2 таблицы 1. Каталог: kodn name group 10 Двигатель .t.1005 Вал коленчатый и маховик .t.1005034 Сальник к/вала .f.... 2 Остатки kodn snm1005034 580... Необходимо получить суммы остатков по группам примерно получается вот такой запрос Код: sql 1. 2. 3. 4. 5. 6.
Я понимаю, что нужно изменить строку ON str(Katalog.kodn) = str(Ost.op_kodn); но как не могу въехать ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 15:00 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6.
Только непонятно, почему надо вязать по str(), а так же чЁ за поле Ost.op_kodn и как оно согласуется с исходными данными? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 15:35 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
PaulWist, Ost.op_kodn, это я ошибся должно быть Ost.kodn str() не обязательна, можно как угодно, просто код задан в числовом формате ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 15:43 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
Ты бы сразу показал какой результат хочешь получить. Табличкой, на примере приведенных исходных данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 15:53 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
Как я понял, что-то вроде этого должно получится Код: sql 1. 2. 3. 4. 5.
Но такая работа с группами, на мой взгляд, не очень корректна ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 16:08 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
Dima T, Должно получиться kodnsuma105801005580 соответственно, группа 10 это сумма всех, товаров, код которых начинается с 10, а группа 1005 это сумма всех, товаров, код которых начинается с 1005 извиняюсь, если что не так объяснил ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 16:29 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
Reese, Насчет групп Согласен. Запрос сейчас проверить не получается ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 16:40 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
E vtyz nfrjq jndtn b gjkexbkcz/ ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 16:55 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
Ой. Я имел ввиду, что у меня такой ответ и получился. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 16:56 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
Reese, Номер не прошел ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 12:08 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
Alexandr29Dima T, Должно получиться kodnsuma105801005580 соответственно, группа 10 это сумма всех, товаров, код которых начинается с 10, а группа 1005 это сумма всех, товаров, код которых начинается с 1005 извиняюсь, если что не так объяснил С учетом данного разъяснения, получается, что поле group лишнее, так как можно ограничиться анализом длины и входимости кодов товаров (контрольный пример в части остатков немного дополнен): Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 14:21 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
2 pioner-v Это почему поле group лишнее ? Я так понял выбрать надо как раз те, у кого group=.T. 2 Alexandr29 авторНомер не прошел А какой ответ получился ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 15:30 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
ReeseНо такая работа с группами, на мой взгляд, не очень корректна Для групп должна быть еще одна таблица с наименованиями групп - idtab,cname. Тогда таблица "Каталог" примет вид - idtab,idgroup,cname. Таблица "Остатки" - idtab,idkatalog,nsum Тогда SELECT станет типовым, с двумя JOIN. По-моему, что-то похожее было в Tastrade. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 18:08 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
Нельзя задействовать в программе зарезервированные слова. Переименуйте поле "group". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 18:53 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
Reese2 pioner-v Это почему поле group лишнее ? Я так понял выбрать надо как раз те, у кого group=.T. Может быть я не понял задание. Не спорю. Слишком "мал" контрольный пример, чтобы сделать правильные выводы... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 19:01 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
Если я правильно понимаю, от необходимо организовать связь по первым символам. По частичному совпадению ключа. В строгом синтаксисе для этого используют опцию LIKE Код: sql 1. 2. 3. 4.
Поскольку LIKE работает только с символьными строками, то и необходимо перевести числа в строку. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 20:53 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
Reese, получилась вот такая таблица:kodnnamesnm10Двигатель .Null.1005Вал коленчатый и маховик.Null. Остальные варианты опробую ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 09:21 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
На мой взгляд самый правильный вариант: Код: sql 1. 2. 3. 4.
Всем большое спасибо за помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 09:39 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
2 Alexandr29 Понятно. Transform... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 10:50 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
Осталось понять, для чего нужно числа переводить в строки. Если это индивидуальный код, то его лучше хранить в отдельном строковом поле и работать с ним отдельно. А с самими таблицами работать через ключевые поля типа Integer. Если, разумеется, не нужна постоянная головная боль со строковыми ID. Помнится, еще лет десять назад сам Владимир Максимов (тогда еще!) поучал: "Не пытайтесь навесить на ключевые поля какие-либо еще функции кроме однозначной идентификации записи." ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 11:54 |
|
Запрос JOIN
|
|||
---|---|---|---|
#18+
sg12Осталось понять, для чего нужно числа переводить в строки.Чтобы выбрать всех потомков/родителей.sg12Если это индивидуальный код, то его лучше хранить в отдельном строковом поле и работать с ним отдельно.Это код для указания положения в дереве. В стартпосте это чётко прослеживается. Но код весьма странно устроен, в частности, интересно, каким образом определяется окончание одного уровня и начало другого?.. sg12А с самими таблицами работать через ключевые поля типа Integer. Если, разумеется, не нужна постоянная головная боль со строковыми ID.+1 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 12:07 |
|
|
start [/forum/topic.php?desktop=1&fid=41&tid=1583104]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 174ms |
0 / 0 |