Вопрос по SQL, СУБД HyTech

DI
На сайте с 22.01.2010
Offline
135
839

Есть собственно запрос к БД, который выдает список путевок



//Выборка путевок
fix all;
select
INV.DOC_NUM as 'docnum',
INV.ID as 'numnak',
SQ.STATE as 'status',
SQ.REQNUM as 'numsq',
LQ.SNILSS as 'snils',
CT.NAME as 'prof',
INV.OTHER_NAME as 'fio',
char(SQ.CLNAME + ' ' + SQ.CFNAME + ' ' + SQ.CMNAME, 50) as 'fiosopr',
RL.NAME as 'namesan',
TPS.DAY_INS as 'datein',
TPS.DAY_INS+TPS.DAY_CNT-1 as 'dateout',
INV.DOC_SUM/100 as 'price',
INV.DOC_CNT as 'putcount'

from INVOICE INV, LQUEUE LQ, SQUEUE SQ, CTREATM CT, TOURPOS TPS, RELAX RL
where
INV.ID_OTHER = LQ.ID and SQ.ID_OWN=LQ.ID and SQ.CTREAT=CT.ID and TPS.ID_RELAX=RL.ID and //связка таблиц
TPS.ID_INVOICE = INV.ID //связка таблиц
and SQ.ID = INV.ID_QUEUE//связка таблиц
and SQ.REQYEAR = 15 //год
and INV.CATEGORY = 6 and INV.DOC_DATE => '01-01-2015' and INV.TDOC = 1//категория путевок и текущий год
and (INV.DOC_DATE>='02-11-2015') and (INV.DOC_DATE <='06-11-2015') //период путевок
group by INV.DOC_NUM
;
results table '**t1';

//выборка путевых листов
select
PT1.IDD as 'idpt', //номер накладной
char(iif(PT1.TYPE >= 4, 'Авто', (iif (PT1.TYPE=>3, 'Авиа',(iif (PT1.TYPE=>1, 'Ж/Д',' '))))),50) as 'train',
char(PT1.DEPT + '-' + PT1.PURP + '; ' + PT1.PURP + '-' + PT1.DEPT, 50) as 'napr' //вид проезда
from PTRANS PT1, t1
where PT1.IDD = t1.numnak;
results table '**t2';
//Сводная таблица
select t1.snils as 'СНИЛС',
t1.prof as 'Профиль заболевания',
t1.fio as 'ФИО',
t1.fiosopr as 'ФИО сопровождающего',
t1.namesan as 'Санаторий',
t1.datein as 'Дата заезда',
t1.dateout as 'Дата выезда',
t1.price as 'Стоимость',
t1.putcount as 'Количество',
t2.train as 'Вид проезда',
t2.napr as 'Маршрут'
from t1, t2
where t1.numnak=t2.idpt
group by t1.docnum
;

Проблема вот в чем:

1. В итоге по данному запросу я получаю только тех людей, у которых есть проезд, но у меня задача получить список всех - и с проездом и без проезда

по одному из старых запросов помню, что нужно поставить *

where t1.numnak*=t2.idpt

но что то как то не работает. Пол дня убил на эту проблему. База данных СУБД HyTech

siv1987
На сайте с 02.04.2009
Offline
427
#1
S
На сайте с 23.05.2004
Offline
315
#2

LEFT JOIN использовать надо, если выбрать все записи, даже которые не связаны между таблицами. Но смотреть документацию этой субд, есть ли там такое.

Это просто подпись.
DI
На сайте с 22.01.2010
Offline
135
#3

благодарю, то что надо)

---------- Добавлено 21.12.2015 в 22:18 ----------

Stek:
LEFT JOIN использовать надо, если выбрать все записи, даже которые не связаны между таблицами. Но смотреть документацию этой субд, есть ли там такое.

Увы, не поддерживается. Синтаксис HyTech близок к стандартам SQL-89, индекс 89 говорит сам за себя) IT в бюджетных учреждениях в тех же годах) Сейчас на работе я сижу на XP и MS 2003, у которых часто отваливаются дрова принтеров, так как они даже и не слышали о Windows XP )

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий