powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос моей ЖИЗНИ или СМЕРТИ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4 сообщений из 4, страница 1 из 1
Вопрос моей ЖИЗНИ или СМЕРТИ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    #32038619
MxN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MxN
Гость
Понимаю, что всем уже надоел, но очень прошу помочь,
вопрос ЖИЗНИ И СМЕРТИ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Помогите, господа профессионалы !!!!!!!!!!!!!!!!!!!!
ГОРЮ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
У меня проблемы из-за структуры этой идиотской таблицы INFORMATION

Есть такой запрос:

DECLARE @date_arr VARCHAR(10)
set @date_arr='2002-07-24'

select
guest.account,
history.ghacct,
convert(varchar(10),information.info), --Здесь я получаю номер

-- (структура таблицы внизу)

-- information.code 'НАДО ЧТО-Б ЗДЕСЬ БЫЛ ТИП, НАПРИМЕР - N'
-- information.info 'НАДО ЧТО-Б ЗДЕСЬ БЫЛА ДАТА, КОТОРАЯ НАПРОТИВ information.code СО ЗНАЧЕНИЕМ "day"',
-- information.info 'НАДО ЧТО-Б ЗДЕСЬ БЫЛА ДАТА, КОТОРАЯ НАПРОТИВ information.code СО ЗНАЧЕНИЕМ "day_ar"',

history.name,
history.id_type,
history.id,
history.birth_place_county,
convert(varchar(10),history.issue_date, 103),
convert(varchar(10),history.exp_date, 103),
convert(varchar(10),history.dob, 103),
history.sex,
history.phone,
history.fax,
history.email,
history.history_code,
history.zip,
history.country,
history.city,
history.address,
history.state

from guest , z_roomtype , history , information

where guest.arrival=@date_arr and
guest.status in ('I','O') and
guest.room_type=z_roomtype.code and
z_roomtype.roomtype_group='CS' and
guest.ghacct*=history.ghacct and
guest.ghacct*=information.account and
information.code='N'
===========================================================

Таблица INFORMATION представлена в таком виде:

account code info
-------- ------ ---------
805319 DAY 20/05/02
805319 N 123458
805319 TYPE SILVER
805320 DAY 23/05/02
805320 N 123456
805320 TYPE SILVER
805326 DAY 10/03/02
805326 DAY_AR 10/03/02
805326 N 111222
805326 TYPE SILVER
805542 DAY 23/05/02
805542 N 123457
805542 TYPE SILVER

КАК ЭТО СДЕЛАТЬ ???????????????????????????????????
ПОМОГИТЕ ПОЖАЛУЙСТА !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...
Рейтинг: 0 / 0
Вопрос моей ЖИЗНИ или СМЕРТИ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    #32038627
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Общее направление - это делается через подзапросы, где-то так:

SELECT guest.*, t.*
FROM guest LEFT JOIN
(SELECT ... FROM INFORMATION) t ON guest.account=t.account
WHERE ...
t.code='N'

А вот этот-то подзапрос, результатом которого является таблица t и конвертирует твою таблицу Information в тот вид, который ты и просил ранее - т.е. одна запись на каждый Account
...
Рейтинг: 0 / 0
Вопрос моей ЖИЗНИ или СМЕРТИ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    #32038629
MxN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MxN
Гость
C JOIN сложновато, так как участвуют 4 таблицы,
а если так сделать будет ли это корректно ????????

select
..........

(select info from information where code='TYPE' and guest.ghacct*=information.account)'Тип'

from .........
where .........
...
Рейтинг: 0 / 0
Вопрос моей ЖИЗНИ или СМЕРТИ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    #32038682
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, насколько я знаю, когда ты пишешь

guest.ghacct*=information.account

это и есть абсолютный аналог LEFT JOIN и 4 таблицы - это далеко не предел

Предложенный тобой вариант теоретически тоже будет работать, хотя я бы написал подзапрос несколько иначе:

(select MAX(info) from information where code='TYPE' and information.account=guest.ghacct) as TYPE

Я использовал MAX() на тот вполне вероятный случай, когда для указанного значения guest.ghacct нет записи со значением code='TYPE'. Я просто не знаю, что получится если в данном месте подзапрос не вернет ни одного значения.

Впрочем, как именно писать подзапросы - это уже дело вкуса и личных предпочтений. Ну и конечно планировщика запросов :)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос моей ЖИЗНИ или СМЕРТИ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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