powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / opjatj sumashedshije zaprosiki.
13 сообщений из 13, страница 1 из 1
opjatj sumashedshije zaprosiki.
    #33974745
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jestj sledujuschij zapros iz 3-jeh tablic
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
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= 2  
    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
Zapros rabochij, no voznikla nebolshaja problemma, k etomu zaprosu nado pribavitj esche odnu tablicu. gh_hall i vitaschitj iz neje pole x_axis. gh_hall svjazano s tablicej gh_date kak gh_hall.id=gh_date.hall_id. odin (gh_hall) k mnozhestvu (gh_date). kak etot zapros luche oformitj?
P.S. on dolzhen vivoditj vse poznachenija iz tablici gh_data sootvetsvenno k znachenijam gh_fields, dazhe jesli v gh_data netu zapisi sootvetsvujuschej zapisi gh_fields (obichno vivodit .NULL.)
...
Рейтинг: 0 / 0
opjatj sumashedshije zaprosiki.
    #33974808
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все зависит от того а что ты собираешся с x_axis делать и на каком уровне показать .
...
Рейтинг: 0 / 0
opjatj sumashedshije zaprosiki.
    #33974820
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
x_axis nuzhen pri eksport v excel. v njem ukazivajetsja v kakuju jachejku, po osi x, nado pihatj zapisj gh_data.data. t.e. vivoditsja postojanno
...
Рейтинг: 0 / 0
opjatj sumashedshije zaprosiki.
    #33974874
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько я понимаю условие gh_date.hall_id=:id во всем запросе этот самый gh_hal.lx_axis будет один для всех
:id - это как раз условие по которому нужно выбрать и данные из gh_hall ? и эта запись по нему там одна.
если это так то можно

1. выбрать значение в переменную и
SELECT SUM(gh_data.data), foo.fld_id , переменная as x_axis ....

2. SELECT SUM(gh_data.data), foo.fld_id , ( select x_axis from gh_hall where gh_hall.id=:id) as x_axis ....
...
Рейтинг: 0 / 0
opjatj sumashedshije zaprosiki.
    #33974894
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ne sovesme predstavljaju kak eto v polnom zaprose budet vigljadetj :(
...
Рейтинг: 0 / 0
opjatj sumashedshije zaprosiki.
    #33974987
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так и будет - начало мое - все остальное без изменений
...
Рейтинг: 0 / 0
opjatj sumashedshije zaprosiki.
    #33975083
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tak, zabil chto zaprosi s takimi subquery ne idut v VFP7 izvinjajusj, moja oshibka. Bil napisan drugoj zapros:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT gh_hall.x_axis, SUM(Gh_data.data ),gh_fields.id, Gh_fields.field_name , gh_hall.name, gh_hall.adress;
FROM gh_fields;
INNER JOIN gh_date ON (gh_date.rep_date>=CTOD("01.08.2006") AND gh_date.rep_date<=CTOD("31.08.2006"));
INNER JOIN gh_hall ON gh_hall.id=gh_date.hall_id;
LEFT JOIN gh_data ON gh_fields.id = gh_data.field_id ;
			AND gh_date.id =gh_data.main_id ;
			AND gh_data.mode_id= 1  ;
WHERE gh_fields.table_id= 5 ;
group BY Gh_hall.id, Gh_data.field_id;
ORDER BY Gh_hall.x_axis, Gh_data.field_id
Zapros rabotajet, pochti. One ne na vse zali vidajet gh_data.data sootvetsvujuschije gh_fields.field_name. Propuskajet prosto naprosto. Prosche govorja, na odin zal mozhet vidatj vse 8 zapisej, v tom chisle i gde gh_data.data=NULL (to chto mne in trebujetsja), a v drugih zalah on ignorirujet zapisi s NULL. Proverte zapros pozhalusta, mozh najdete oshibku
...
Рейтинг: 0 / 0
opjatj sumashedshije zaprosiki.
    #33975137
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
INNER JOIN gh_date ON (gh_date.rep_date>=CTOD("01.08.2006") AND gh_date.rep_date<=CTOD("31.08.2006"));   

непонятно - это условие фильтрации , а где собственно связь с gh_fields ?
...
Рейтинг: 0 / 0
opjatj sumashedshije zaprosiki.
    #33975165
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gh_fields nesvjazano s gh_date. Shema svjazi sledujuschaja gh_hall->gh_date->gh_data->gh_fields. Pervim stoit gh_fields, po toj prostoj prichine, chto eto jedinstvennij metod kak mne udalosj dobitsja togo, chto v nezavisimosti jestj li sootvetsvujuschaja zapisj v gh_data k gh_fields, vivodjatsja vse znachenija gh_fields, a iz gh_data, jesli znachenij k zapisi netu, vivoditsja NULL (to chto mne i trebujetsja) Do dobavlenija v etot zapros tablici gh_hall, vsje rabotalo tip-top. No mne nuzhen zapros s gh_hall
...
Рейтинг: 0 / 0
opjatj sumashedshije zaprosiki.
    #33975211
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к сожалению не могу дальше участвовать в обсуждении - пора домой.
однако что могу посоветовать
1 - тот join на который я указал - неправильный - он ни с чем не связан.
2. не забывай что join может быть вложенный
3. посмотри по порядку своих связей какие таблички от каких зависят и попытайся как-бы скобки расставить . собственно "(" - это join , а ")" это ON
...
Рейтинг: 0 / 0
opjatj sumashedshije zaprosiki.
    #33975215
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mozhet, no ne v VFP7, materitsja on po strashnomu na vlozhennije join. Tot join pravilnij, zdesj mozhno skazatj vopros nado bilo po drugomu postavitj. Kak i kuda zapihatj join s gh_hall. Bezn nego rabotajet vsje tip-top
...
Рейтинг: 0 / 0
opjatj sumashedshije zaprosiki.
    #33975246
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vot tak vigljadel rabotajuschij zapros:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT Gh_fields.field_name, SUM(Gh_data.data), gh_date.hall_id ;
FROM gh_fields;
INNER JOIN gh_date ON (gh_date.rep_date>=CTOD("01.08.2006") AND gh_date.rep_date<=CTOD("31.08.2006"));
LEFT JOIN gh_data ON gh_fields.id = gh_data.field_id ;
			AND gh_date.id =gh_data.main_id ;
			AND gh_data.mode_id= 1  ;
WHERE gh_fields.table_id= 2 ;
GROUP BY gh_date.hall_id, gh_fields.id;
ORDER BY gh_date.hall_id, gh_fields.id

na osnovanii kotorogo ja sdelal etot zapros, kotorij do konca ne rabotajet:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT gh_hall.x_axis, SUM(Gh_data.data ),gh_fields.id, Gh_fields.field_name , gh_hall.name, gh_hall.adress;
FROM gh_fields;
INNER JOIN gh_date ON (gh_date.rep_date>=CTOD("01.08.2006") AND gh_date.rep_date<=CTOD("31.08.2006"));
INNER JOIN gh_hall ON gh_date.hall_id=gh_hall.id;
LEFT JOIN gh_data ON (gh_fields.id = gh_data.field_id ;
			AND gh_date.id =gh_data.main_id ;
			AND (gh_data.mode_id= 1 )) ;
WHERE gh_fields.table_id= 2 ;
group BY gh_date.hall_id, Gh_data.field_id;
ORDER BY Gh_hall.x_axis, Gh_data.field_id
...
Рейтинг: 0 / 0
opjatj sumashedshije zaprosiki.
    #33977240
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nu jestj kakije idei?
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / opjatj sumashedshije zaprosiki.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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