| 
			| 
					
						| Dana | 
								|  | « Ответ #120 : 25-11-2010 10:02 »  |  | 
 
 Dana, а вот скажи... если здесь использовать левое соединение таблиц, то - это будет плохо или хорошо, и почему?
 попробовала использовать левое соединение-ничего не изменилось, но это наверно потому что у меня нет NULL если бы было, то если использовать левый джоин то выведутся все зачения(вместе с нулл), т е не будет учтена правая таблица.  |  
						| 
								|  |  
								| « Последнее редактирование: 25-11-2010 10:08 от Dana » |  Записан | 
 
 Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье? |  |  | 
	| 
			| 
					
						| Sla | 
								|  | « Ответ #121 : 25-11-2010 10:32 »  |  | 
 
 а вот если сделать такой запрос
 Вывести всех клиентов, которые не делали платежей с ... по ...
 
 Как ты построишь запрос?
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Мы все учились понемногу... Чему-нибудь и как-нибудь. |  |  | 
	| 
			| 
					
						| Dana | 
								|  | « Ответ #122 : 25-11-2010 11:00 »  |  | 
 
 select C_FIRST_NAME, C_SECOND_NAME, C_LAST_NAME, d_pay, n_sum FROM client,payment WHERE n_sum=NULL and d_pay between to_date('05.04.08','DD.MM.YY')and to_date('30.08.08','DD.MM.YY')Добавлено через 11 минут и 29 секунд: Лучше использовать Лефт джоин, тогда записи выходят с NULL select C_FIRST_NAME, C_SECOND_NAME, C_LAST_NAME, d_pay, n_sumFROM client Left JOIN payment ON client.n_client = payment.n_client and
 d_pay between to_date('05.04.08','DD.MM.YY')and to_date('30.08.08','DD.MM.YY')
 |  
						| 
								|  |  
								| « Последнее редактирование: 25-11-2010 11:12 от Dana » |  Записан | 
 
 Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье? |  |  | 
	| 
			| 
					
						| Sla | 
								|  | « Ответ #123 : 25-11-2010 11:14 »  |  | 
 
 скажи, теперь ты почувствовала хоть какую-то разницу? |  
						| 
								|  |  
								|  |  Записан | 
 
 Мы все учились понемногу... Чему-нибудь и как-нибудь. |  |  | 
	| 
			| 
					
						| Dana | 
								|  | « Ответ #124 : 25-11-2010 11:20 »  |  | 
 
 скажи, теперь ты почувствовала хоть какую-то разницу?
 Разница большая   Теперь думаю как вывести тех кто не платил ВО: select C_FIRST_NAME, C_SECOND_NAME, C_LAST_NAME, d_pay, n_sumFROM client left JOIN payment ON client.n_client = payment.n_client and
 d_pay between to_date('05.04.08','DD.MM.YY')and to_date('30.08.08','DD.MM.YY')
 and n_sum=0
 ORDER BY C_FIRST_NAME asc
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье? |  |  | 
	| 
			| 
					
						| Sla | 
								|  | « Ответ #125 : 25-11-2010 11:50 »  |  | 
 
 Dana, не угадала
 Ведь у тебя в таблице платежей нет нулевых сумм
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Мы все учились понемногу... Чему-нибудь и как-нибудь. |  |  | 
	| 
			| 
					
						| Dana | 
								|  | « Ответ #126 : 25-11-2010 12:04 »  |  | 
 
 Dana, не угадала
 Ведь у тебя в таблице платежей нет нулевых сумм
 
 есть только "-",  когда я сформировала запрос вышеупомянутый он мне выдал всех с "-"Добавлено через 1 минуту и 9 секунд: 4.   Вывести список клиентов, проживающих в Челябинске и не имеющих долгов по оплате за сентябрь 2008 года. select C_FIRST_NAME, C_SECOND_NAME, C_LAST_NAME, n_city, n_debt  FROM client left JOIN computation ON client.n_client = computation.n_client   а как подвязать сентябрь не знаю, подзапрос использовать? |  
						| 
								|  |  
								| « Последнее редактирование: 25-11-2010 12:05 от Dana » |  Записан | 
 
 Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье? |  |  | 
	| 
			| 
					
						| Sla | 
								|  | « Ответ #127 : 25-11-2010 12:20 »  |  | 
 
 а каие есть функции работы с датой? SELECT SYSDATE d1, TRUNC(SYSDATE,'HH24') d2,  TRUNC(SYSDATE, 'DD') d3,  TRUNC(SYSDATE, 'MM') d4, TRUNC(SYSDATE,  'YYYY')  d5  FROM dual; SELECT SYSDATE d1, LAST_DAY(SYSDATE) d1 FROM dual  А может есть еще какие-нибудь?Добавлено через 37 секунд: Dana, не угадала
 Ведь у тебя в таблице платежей нет нулевых сумм
 
 есть только "-",  когда я сформировала запрос вышеупомянутый он мне выдал всех с "-"Непонятно, откуда взялся "-" |  
						| 
								|  |  
								| « Последнее редактирование: 25-11-2010 12:21 от Sla » |  Записан | 
 
 Мы все учились понемногу... Чему-нибудь и как-нибудь. |  |  | 
	| 
			| 
					
						| Dana | 
								|  | « Ответ #128 : 25-11-2010 15:48 »  |  | 
 
 Dana, не угадала
 Ведь у тебя в таблице платежей нет нулевых сумм
 
 есть только "-",  когда я сформировала запрос вышеупомянутый он мне выдал всех с "-"Непонятно, откуда взялся "-"вот что оракл возвращает: C_FIRST_NAME C_SECOND_NAME C_LAST_NAME D_PAY N_SUM  Айгуль Фармутовна Гайфуллина -  -   Айна Телеухановна Аскарова -  -   Александр Александрович Малев -  -   Александр Николаевич Катаев -  -   Александр Владимирович Новосельцев -  -   Александр Викторович Герасимов -  -   Александр Станиславович Иванов -  -   Александр Федорович Бурдастых -  -   Александр Сергеевич Попов -  -   Александр Иванович Шлегель -  -   __________________________ |  
						| 
								|  |  
								|  |  Записан | 
 
 Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье? |  |  | 
	| 
			| 
					
						| Sla | 
								|  | « Ответ #129 : 25-11-2010 15:56 »  |  | 
 
 Dana, каким запросом? |  
						| 
								|  |  
								|  |  Записан | 
 
 Мы все учились понемногу... Чему-нибудь и как-нибудь. |  |  | 
	| 
			| 
					
						| Dana | 
								|  | « Ответ #130 : 25-11-2010 16:31 »  |  | 
 
 select C_FIRST_NAME, C_SECOND_NAME, C_LAST_NAME, d_pay, n_sum FROM client left JOIN payment ON client.n_client = payment.n_client and  d_pay between to_date('05.04.08','DD.MM.YY')and to_date('30.08.08','DD.MM.YY') and n_sum=0 ORDER BY C_FIRST_NAME ascДобавлено через 13 часов, 42 минуты и 41 секунду:  Добавлено через 3 дня, 2 часа, 34 минуты и 11 секунд: Для 4  select C_FIRST_NAME, C_SECOND_NAME, C_LAST_NAME, n_city, n_debt  FROM client left JOIN computation ON client.n_client = computation.n_client  and to_char(d_computation,'MM') = '09' and n_debt <= 0 осталось как-то город подвязать |  
						| 
								|  |  
								| « Последнее редактирование: 29-11-2010 08:48 от Dana » |  Записан | 
 
 Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье? |  |  | 
	| 
			| 
					
						| McZim | 
								|  | « Ответ #131 :  29-11-2010 09:10 »   |  | 
 
 Dana, а у вас еще небыло такой темы как план выполнения запроса? А будет, если небыло? |  
						| 
								|  |  
								|  |  Записан | 
 
 The CBO without stats is like a morning without coffee. (c) T.Kyte. |  |  | 
	| 
			| 
					
						| Dana | 
								|  | « Ответ #132 : 30-11-2010 07:49 »  |  | 
 
 Не было к сожалению
 Добавлено через 1 день, 18 часов, 52 минуты и 41 секунду:
 С  left JOIN мне препод сказал лучше не связываться в этом примере. Как мне его тогда сделать?
 
 Добавлено через 9 часов, 32 минуты и 51 секунду:
 select C_FIRST_NAME, C_SECOND_NAME, C_LAST_NAME, client.n_city,computation.n_debt
 From client, computation
 where client.n_client=computation.n_client
 and n_debt <=0
 and n_city (select city.c_city
 from city
 where upper (c_city) like upper ('%челяб%'))
 and to_char(d_computation,'MM')='10'
 |  
						| 
								|  |  
								| « Последнее редактирование: 02-12-2010 12:14 от Dana » |  Записан | 
 
 Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье? |  |  | 
	| 
			| 
					
						| Sla | 
								|  | « Ответ #133 : 02-12-2010 12:22 »  |  | 
 
 select C_FIRST_NAME, C_SECOND_NAME, C_LAST_NAME, client.n_city,computation.n_debtFrom client, computation
 where client.n_client=computation.n_client
 and n_debt <=0
 and n_city (select city.c_city
 from city
 where upper (c_city) like upper ('%челяб%'))
 and to_char(d_computation,'MM')='10'
 
 Ты хоть поняла что ты написала? Описываешь задачу - пишешь решение, и нам так легче и тебе. |  
						| 
								|  |  
								|  |  Записан | 
 
 Мы все учились понемногу... Чему-нибудь и как-нибудь. |  |  | 
	| 
			| 
					
						| McZim | 
								|  | « Ответ #134 : 02-12-2010 12:28 »  |  | 
 
 С  left JOIN мне препод сказал лучше не связываться
 Не понял этого. Связиваться с ними или нет, это как-то не корректно, для меня это звучит так, что типа если можно обойтись без них то лучше обойтись, так как они глючные! Использовать соединения или нет зависит от требуемого результата. У тебя попрежнему не верный синтаксис, на логику не проверяю. Кстате у препода такая апатия только к левому соединению или еще к какому то? Потому как ты все равно используешь соединения! |  
						| 
								|  |  
								|  |  Записан | 
 
 The CBO without stats is like a morning without coffee. (c) T.Kyte. |  |  | 
	|  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #136 : 06-12-2010 11:44 »  |  | 
 
 Макс, не понятно. по ссылке слишком много всего. |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| McZim | 
								|  | « Ответ #137 : 06-12-2010 11:51 »  |  | 
 
 RXL, Общая идея в том, что при использовании ANSI JOIN, в Oracle, всплывают от версии к версии разные баги и архитектурные прелести. Ошибки вывода данных, невозможность применять хинты, невминяемые планы выполнения запроса и всякое такое разное. Ходят даже слухи, что Oracle это специально делает, дабы оправдать тех. поддержку   В последних версиях 10-ки 11-ой уже многое из этих проблем пофиксили. Для десятки это: 10.2.0.5.0, для одиннадчатой это: 11.2.0.2.0 |  
						| 
								|  |  
								|  |  Записан | 
 
 The CBO without stats is like a morning without coffee. (c) T.Kyte. |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #138 : 06-12-2010 13:00 »  |  | 
 
 Надо обновиться. 10.2.0.5, оказывается, пол года как появился. За последние пол года никаких проблем не испытывал, но патч накачу. |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| Dana | 
								|  | « Ответ #139 : 07-12-2010 04:17 »  |  | 
 
 Задача:4.   Вывести список клиентов, проживающих в Челябинске и не имеющих долгов по оплате за сентябрь 2008 года.
 select C_FIRST_NAME, C_SECOND_NAME, C_LAST_NAME, client.n_city,computation.n_debt
 From client, computation
 where client.n_client=computation.n_client
 and n_debt <=0
 and n_city=50 and n_city=55 and n_city=61
 and to_char(d_computation,'MM')='10'
 50,55,60 - это значит город Челябинск
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье? |  |  | 
	| 
			| 
					
						| Dana | 
								|  | « Ответ #140 : 07-12-2010 05:22 »  |  | 
 
 5.   Найти всех абонентов г. Троицка вывести последнею сумму долга, с указанием адреса и фамилииselect client.C_FIRST_NAME, client.C_SECOND_NAME, client.C_LAST_NAME,client.N_STREET,client.C_HOUSE,client.N_FLAT,client.n_city,computation.n_debt
 From client, computation
 where client.n_client=computation.n_client
 and n_debt >0
 and client.n_city=48
 and client.n_city=69
 
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье? |  |  | 
	| 
			| 
					
						| Sla | 
								|  | « Ответ #141 : 07-12-2010 07:24 »  |  | 
 
 Задача:4.   Вывести список клиентов, проживающих в Челябинске и не имеющих долгов по оплате за сентябрь 2008 года.
 select C_FIRST_NAME, C_SECOND_NAME, C_LAST_NAME, client.n_city,computation.n_debt
 From client, computation
 where client.n_client=computation.n_client
 and n_debt <=0
 and n_city=50 and n_city=55 and n_city=61
 and to_char(d_computation,'MM')='10'
 50,55,60 - это значит город Челябинск
 
 and n_city=50 and n_city=55 and n_city=61 Не правильно ты, дядя Федор бутерброд кушаешь  (с) |  
						| 
								|  |  
								|  |  Записан | 
 
 Мы все учились понемногу... Чему-нибудь и как-нибудь. |  |  | 
	| 
			| 
					
						| Sla | 
								|  | « Ответ #142 : 07-12-2010 07:25 »  |  | 
 
 5.   Найти всех абонентов г. Троицка вывести последнею сумму долга, с указанием адреса и фамилииselect client.C_FIRST_NAME, client.C_SECOND_NAME, client.C_LAST_NAME,client.N_STREET,client.C_HOUSE,client.N_FLAT,client.n_city,computation.n_debt
 From client, computation
 where client.n_client=computation.n_client
 and n_debt >0
 
 and client.n_city=48
 and client.n_city=69
 
 
 Переписывай запрос |  
						| 
								|  |  
								|  |  Записан | 
 
 Мы все учились понемногу... Чему-нибудь и как-нибудь. |  |  | 
	| 
			| 
					
						| Dana | 
								|  | « Ответ #143 : 07-12-2010 08:49 »  |  | 
 
 Задача:4.   Вывести список клиентов, проживающих в Челябинске и не имеющих долгов по оплате за сентябрь 2008 года.
 select C_FIRST_NAME, C_SECOND_NAME, C_LAST_NAME, client.n_city,computation.n_debt
 From client, computation
 where client.n_client=computation.n_client
 and n_debt <=0
 and n_city=50 and n_city=55 and n_city=61
 and to_char(d_computation,'MM')='10'
 50,55,60 - это значит город Челябинск
 
 and n_city=50 and n_city=55 and n_city=61 Не правильно ты, дядя Федор бутерброд кушаешь  (с)с "OR" тоже не вариант. (( |  
						| 
								|  |  
								|  |  Записан | 
 
 Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье? |  |  | 
	| 
			| 
					
						| Sla | 
								|  | « Ответ #144 : 07-12-2010 08:59 »  |  | 
 
 с "OR" тоже не вариант. ((
 
 Почему?
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Мы все учились понемногу... Чему-нибудь и как-нибудь. |  |  | 
	| 
			| 
					
						| Dana | 
								|  | « Ответ #145 : 07-12-2010 09:56 »  |  | 
 
 OR – оператор, который отображает только те записи, когда хотя бы одно из  условий является правдойУ меня тогда выводится на экран фигня полная
 "C_FIRST_NAME C_SECOND_NAME C_LAST_NAME N_CITY N_DEBT
 Мария Витальевна Погорелова 55 -3  - долга нет
 Мария Витальевна Погорелова 55 561   -долг есть
 Мария Витальевна Погорелова 55 904   -долг есть
 Мария Витальевна Погорелова 55 260
 Мария Витальевна Погорелова 55 570 "
 ну и так далее
 
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье? |  |  | 
	| 
			| 
					
						| Sla | 
								|  | « Ответ #146 : 07-12-2010 10:45 »  |  | 
 
 покажи запрос с OR |  
						| 
								|  |  
								|  |  Записан | 
 
 Мы все учились понемногу... Чему-нибудь и как-нибудь. |  |  | 
	| 
			| 
					
						| Dana | 
								|  | « Ответ #147 : 07-12-2010 10:55 »  |  | 
 
 select C_FIRST_NAME, C_SECOND_NAME, C_LAST_NAME, client.n_city,computation.n_debtFrom client, computation, city
 where client.n_client=computation.n_client
 and client.n_city=city.n_city  -переделала
 and n_debt>0  - переделала
 and n_city=50 or n_city=55 and n_city=61
 and to_char(d_computation,'MM')='10'
 
 по этому запросу мой оракл почему-то ничего не делает в браузере только внизу написано "ошибка на странице"
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье? |  |  | 
	| 
			| 
					
						| McZim | 
								|  | « Ответ #148 : 07-12-2010 11:05 »  |  | 
 
 Dana, а сама не видишь где проблема? Посмотри внимательно, комментируя каждый шаг! |  
						| 
								|  |  
								|  |  Записан | 
 
 The CBO without stats is like a morning without coffee. (c) T.Kyte. |  |  | 
	| 
			| 
					
						| Dana | 
								|  | « Ответ #149 : 07-12-2010 11:42 »  |  | 
 
 select C_FIRST_NAME, C_SECOND_NAME, C_LAST_NAME, client.n_city,computation.n_debt // что выведется:имя,отчество,фамилия,идентиф. города, долг на начало октFrom client, computation, city //использовать таблицы клиент, компут., города
 where client.n_client=computation.n_client //объединяем идент.клиента в табл. клиента равен идент. клиента в табл. компут.
 and client.n_city=city.n_city // объедин. идент. города в табл. клиент и идент. города в табл. сити
 and n_debt>0 // долг больше нуля
 and n_city=50 or n_city=55 and n_city=61 //выбрать идент. 50 или 55 и 61
 and to_char(d_computation,'MM')='10' // на начало какого периода выводить долг
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье? |  |  | 
	|  |