powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Помогите с запросом
7 сообщений из 7, страница 1 из 1
Помогите с запросом
    #33393444
grin:..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Существует таблица
pps_payments
и таблица
pps_payments_fields

хочу вывести все записи из таблицы pps_payments + поле val (любое для начала) из таблицы pps_payments_fields (связь pps_payments.id = pps_payments_fields.payment_id).
например, делаю такой вот select
Код: plaintext
1.
2.
3.
4.
SELECT pps_payments.* , pps_payments_fields.val as fields_val 
FROM pps_payments INNER JOIN pps_payments_fields ON pps_payments_fields.payment_id=pps_payments.id 
GROUP BY pps_payments_fields.payment_id 
ORDER BY pps_payments.date DESC 
выводятся куча каких-то непонятных записей, почему-то group by работает не так как например в mysql.
...
Рейтинг: 0 / 0
Помогите с запросом
    #33393970
_kvs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вижу group by, но не вижу ни одной агрегатной функции (типа count, sum и тп)...
Что требуется получить-то в результате?
...
Рейтинг: 0 / 0
Помогите с запросом
    #33394015
grin:..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в результате необходимо получить записи из pps_payments + например последнее поле val из таблицы pps_payments_fields (связь pps_payments.id = pps_payments_fields.payment_id).
...
Рейтинг: 0 / 0
Помогите с запросом
    #33394050
grin:..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот например, что-то типа этого
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT 
pps_payments.*, 
(select val from pps_payments_fields where payment_id = pps_payments.id) as val
FROM pps_payments 
WHERE date >= '2005-11-4 00:00:00.000' AND date <= '2005-11-23 23:59:59.999' 
ORDER BY pps_payments.date DESC
ошибка (
...
Рейтинг: 0 / 0
Помогите с запросом
    #33394171
grin:..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
SELECT 
p.* , (select val from pps_payments_fields where payment_id = p.id) as val 
FROM pps_payments p

вот это вроде как работает, но если записей в pps_payments_fields больше одного вылетает с ошибкой, думаю можно сделать что-то типа
Код: plaintext
1.
select top  1  val from pps_payments_fields where payment_id = p.id
но у меня ASE
...
Рейтинг: 0 / 0
Помогите с запросом
    #33395592
_makSim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так подойдёт?

select
t1.id,
t1.sp_id,
t1.sd_id,
t1.status,
t1.error_id,
t1.date,
t1.pay_date,
t1.dealer_id,
t1.dealer_main_id,
t1.terminal_id,
t1.gateway_id,
t1.provider_id,
t1.amount,
t1.amount_cash,
t1.count_send,
max(t2.val) -- или ещё как
from pps_payments t1
join pps_payments_fields t2 on t1.id = t2.payment_id
group by
t1.id,
t1.sp_id,
t1.sd_id,
t1.status,
t1.error_id,
t1.date,
t1.pay_date,
t1.dealer_id,
t1.dealer_main_id,
t1.terminal_id,
t1.gateway_id,
t1.provider_id,
t1.amount,
t1.amount_cash,
t1.count_send
...
Рейтинг: 0 / 0
Помогите с запросом
    #33396216
_kvs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2grin

как я понимаю, тебе нужно связать две таблицы и вывести все поля одной
и допустим одно второй
group by здесь ни к чему, это раз, или я чего-то не понимаю...
вариантов два - либо перечислять все поля, либо писать что-то типа A.*,
где A-алиас первой таблицы
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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