powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / нахождение записи по ключу состоящему из 3 полей
11 сообщений из 11, страница 1 из 1
нахождение записи по ключу состоящему из 3 полей
    #37228195
Evgen1503
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может не совсем понятно обозвал тему, но сейчас попробую объяснить в чем смысл.
есть одна таблица транзакций, где хранятся чеки, перечень товаров входящие в эти чеки и т.д.
таблица состоит из полей: номер кассы, номер чека, номер смены, причем значения номера чека и номера смены могут совпадать с другими кассами, тип транзакции и много другого.
Задача состоит в том, что надо вывести все чеки где присутствует определенный товар, все можно было бы сделать просто

Код: plaintext
1.
2.
3.
4.
5.
select *
from tranz
where typTranz='1' and key in (select key
from tranz 
where typTranz='2' and code='11111');

но в данной ситуации key состоит из полей номера кассы, номера чека и номера смены
СУБД Paradox
...
Рейтинг: 0 / 0
нахождение записи по ключу состоящему из 3 полей
    #37228237
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
select *
from tranz
where typTranz='1' and (key+tranz+code)  in (select (key+tranz+code)
from tranz 
where typTranz='2' and code='11111');
При необходимости привести всё тут (key+tranz+code) типу к одному типу через str()/val().
И ещё, неужели там нет джойнов?
...
Рейтинг: 0 / 0
нахождение записи по ключу состоящему из 3 полей
    #37228305
Evgen1503
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Честно признаться я не слышал такого понятия "Джойны", мог бы в к рации пояснить
...
Рейтинг: 0 / 0
нахождение записи по ключу состоящему из 3 полей
    #37228334
Evgen1503
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на сколько я знаю Paradox не поддерживает эти функции
...
Рейтинг: 0 / 0
нахождение записи по ключу состоящему из 3 полей
    #37228373
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgen1503на сколько я знаю Paradox не поддерживает эти функцииНу не верю я, что там всё настолько убого. Ну нет там str, так должно быть что-то ещё, переводящее число в строку.
Короче, идея была в том, чтобы выбрать (key+tranz+code) как строку, и с такой же строкой сравнивать во внешнем запросе.
По поводу джойнов - вы используете sql и не знаете слова JOIN ??? Поиск по форуму вам в помощь :))
...
Рейтинг: 0 / 0
нахождение записи по ключу состоящему из 3 полей
    #37228410
Evgen1503
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пардон, join знаю, просто по русски не воспринял
...
Рейтинг: 0 / 0
нахождение записи по ключу состоящему из 3 полей
    #37228413
const64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgen1503на сколько я знаю Paradox не поддерживает эти функцииLocalSQL в BDE крайне беден, но джойны поддерживает. Читайте LOCALSQL.HLP (при стандартной установке в Program Files\Borland\Common Files\Bde\)
...
Рейтинг: 0 / 0
нахождение записи по ключу состоящему из 3 полей
    #37228414
Evgen1503
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
join присутствует, только причем он здесь
...
Рейтинг: 0 / 0
нахождение записи по ключу состоящему из 3 полей
    #37228432
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgen1503, при том, что за минуту вы не могли прочитать и понять о нём всё. Может, стоило подождать хотя бы 5 минут перед тем, как постить "да при чём тут этот хелп, который я не читал?"?
...
Рейтинг: 0 / 0
нахождение записи по ключу состоящему из 3 полей
    #37228449
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, наболело. По сабжу

Код: plaintext
1.
2.
3.
4.
select t1.*
from tranz t1
join tranz t2 on t1.key=t2.key and t1.tranz=t2.tranz and t1.code=t2.code
where t2.typTranz='2' and t2.code='11111';
если будет ругаться на т1 и т2, значит, алиасы таблиц он не понимает, ну тогда
Код: plaintext
1.
2.
3.
4.
select *
from tranz
join (select key,tranz,code from tranz where typTranz='2' and code='11111') t1
on t1.key=tranz.key and t1.tranz=tranz.tranz and t1.code=tranz.code
ну а если уж тут будет ругаться на т1, то даже и не знаю, что ещё посоветовать - придётся вам всё-таки через строки работать.
...
Рейтинг: 0 / 0
нахождение записи по ключу состоящему из 3 полей
    #37228458
Evgen1503
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в Paradoxe функция CAST занимается преобразованием, спасибо все работает
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / нахождение записи по ключу состоящему из 3 полей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]