powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Переделка запросика
7 сообщений из 7, страница 1 из 1
Переделка запросика
    #34813723
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли как нибудь переделать этот запрос так, что, даже если в таблице gh_date нету данных, в таблице gh_fields данные есть всегда, выдавался резулльтат, хотябы по схеме:
fld_id1 Null
fld_id2 Null
...
fld_id(n) Null

Вот, собственно, сам запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT Gh_fields.id AS fld_id, Gh_date.id AS date_id,;
  Gh_fields.table_id;
 FROM ;
     gh_fields,;
    gh_date;
 WHERE ( (  Gh_fields.table_id = (  3  );
   AND  Gh_date.rep_date >= CTOD("01.09.2007") );
   AND  Gh_date.rep_date <= CTOD("30.09.2007") );
   AND  Gh_date.hall_id = (  1  )

Таблицы между собой не связаны, Хоть и выглядит что результат запроса нен несёт смысла, но это только часть более сложного запроса
...
Рейтинг: 0 / 0
Переделка запросика
    #34813794
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А использование опции UNION не спасет отца русской демократии.
...
Рейтинг: 0 / 0
Переделка запросика
    #34813838
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Esli chestno, mne ne prihodilosj ej polzovatsja ni razu. Kak eto vigljadetj budet?
...
Рейтинг: 0 / 0
Переделка запросика
    #34813839
Здесь нужен не Union, а разрешение на вывод в результат запроса не только конктретных значений полей из второй таблицы, но и null в случае не нахождения в ней ничего подходящего. Условие то поставлено жесткое. А еще лучше перейти на нормальное связывание таблиц в запросе через join.
...
Рейтинг: 0 / 0
Переделка запросика
    #34813896
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
join v dannom sluchaje otmenjajetsja. etot zapros chastj vot etogo:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT SUM(gh_data.data), foo.fld_id
FROM (SELECT gh_fields.id AS fld_id, gh_date.id AS date_id, gh_fields.table_id  FROM gh_fields, gh_date
         WHERE gh_fields.table_id= 3  
    AND gh_date.rep_date>=:start_date AND gh_date.rep_date<=:end_date 
    AND gh_date.hall_id=:id

) AS foo
            LEFT JOIN gh_data 
                        ON (foo.fld_id = gh_data.field_id AND foo.date_id =gh_data.main_id)
WHERE (gh_data.mode_id= 1  OR gh_data.mode_id IS NULL) 
GROUP BY foo.fld_id
ORDER BY foo.fld_id
Tablici, v podzaprose ne svjazani mezhdu soboj nikak. Bil bi Join, ja bi etot vopros ne podnimal. A kak sjuda NULL pribitj ja ne predstavljaju
...
Рейтинг: 0 / 0
Переделка запросика
    #34813921
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT ;
	Gh_fields.id AS fld_id, ;
	Gh_date.id AS date_id, ;
	Gh_fields.table_id ;
FROM gh_fields ;
LEFT JOIN gh_date ON Gh_date.rep_date >= CTOD("01.09.2007") ) ;
		AND  Gh_date.rep_date <= CTOD("30.09.2007") ) ;
		AND  Gh_date.hall_id = (  1  )
WHERE Gh_fields.table_id = (  3  )
...
Рейтинг: 0 / 0
Переделка запросика
    #34813958
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Spasibo. Sprosonja kak-to zabil pro etot variant, hotja sam chastenko im polzujusj
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Переделка запросика
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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