Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 ... 3 4 5 [6] 7   Вниз
  Печать  
Автор Тема: Выборка из одной таблицы в SQL  (Прочитано 176063 раз)
0 Пользователей и 13 Гостей смотрят эту тему.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #150 : 07-12-2010 11:47 » 

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 client.n_city=city.n_city  --переделала


and n_debt>0  - переделала
and n_debt>0  -- переделала

and n_city=50 or n_city=55 and n_city=61

and n_city=50 or n_city=55 and n_city=61 --ПЕРЕДЕЛАТЬ

and to_char(d_computation,'MM')='10'
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #151 : 07-12-2010 11:55 » 

and n_city=50 or n_city=55 and n_city=61 //выбрать идент. 50 или 55 и 61

почему именно такое условие?
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #152 : 07-12-2010 12:00 » 

знала бы как переделать давно бы сделала.
А проблема не в computation?
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #153 : 07-12-2010 12:00 » new

and n_city=50 or n_city=55 and n_city=61 //выбрать идент. 50 или 55 и 61

почему именно такое условие?
Потому что под этими идентификаторами находится город Троицк
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #154 : 07-12-2010 12:00 » 

вернемся к логическим выражениям:

1 and 1 or 0 or 1 =1
1 and 0 or 0 or 1 = 1
1 and 0 and (1 or 0) = 0
1 and 1 and ( 1 or 0) = 1
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #155 : 07-12-2010 12:05 » 

Dana, я не про идентификаторы, а про: and .. or .. and
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #156 : 07-12-2010 12:08 » 

вернемся к логическим выражениям:

1 and 1 or 0 or 1 =1
1 and 0 or 0 or 1 = 1
1 and 0 and (1 or 0) = 0
1 and 1 and ( 1 or 0) = 1

все правильно )))
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #157 : 07-12-2010 12:14 » 

если все правильно

то

 1 and n_city=50 or n_city=55 and n_city=61

какой результат будет при
n_city=50
n_city=55
n_city=61
?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #158 : 07-12-2010 21:02 » 

от формы записи условия отбора не меняются...
твое
Код: (SQL)
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' // на начало какого периода выводить долг
можно записать:
Код: (SQL)
AND n_debt>0 // долг больше нуля
AND n_city=50 AND n_city=61 //выбрать идент. 50 или 55 и 61
AND to_char(d_computation,'MM')='10' // на начало какого периода выводить долг

OR n_city=55 // или вместо всего предыдущего просто это город

большая подсказка: скобки
Записан

Удачного всем кодинга! -=x[PooH]x=-
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #159 : 08-12-2010 03:21 » 

если все правильно

то

 1 and n_city=50 or n_city=55 and n_city=61

какой результат будет при
n_city=50  == n_city=55
n_city=55 == n_city=55
n_city=61 == n_city=61
?
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #160 : 08-12-2010 03:23 » 

от формы записи условия отбора не меняются...
твое
Код: (SQL)
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' // на начало какого периода выводить долг
можно записать:
Код: (SQL)
AND n_debt>0 // долг больше нуля
AND n_city=50 AND n_city=61 //выбрать идент. 50 или 55 и 61
AND to_char(d_computation,'MM')='10' // на начало какого периода выводить долг

OR n_city=55 // или вместо всего предыдущего просто это город

большая подсказка: скобки

мне надо по всем этим 3 идентификаторам выбрать
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #161 : 08-12-2010 07:35 » 

если все правильно

то

 1 and n_city=50 or n_city=55 and n_city=61

какой результат будет при
n_city=50
n_city=55
n_city=61
?


n_city=50
            true                false                  false
 1 and n_city=50 or n_city=55 and n_city=61
1 and true  or false and false =1*1 + 0*0 = 1

n_city=55
            true            false         false
 1 and 55=50 or 55=55 and 55=61
1*0 + 0*0 = 0

Так как я ошибся а хотел записать следующее, но от этого ничего не меняется


 1 and n_city=50 or n_city=55 or n_city=61

1 - это истинные условия предыдущих логических выражений

Так вот, при   n_city=55 or n_city=61 выберутся все поля со значением n_city 55 или 61
Следовательно, тф ЧТО-ТО делаешь неправильно.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #162 : 08-12-2010 09:35 » 

Dana, Замучили тебя бедуню Улыбаюсь

По поводу Челябинска, ты случаем не это пытаешься сделать?

Код: (SQL)
WITH test AS
(
    SELECT 'a' AS name, 50 AS id, 0 AS debt FROM dual UNION ALL
    SELECT 'b', 51, -10 FROM dual UNION ALL
    SELECT 'c', 50, 20 FROM dual UNION ALL
    SELECT 'd', 55, 30 FROM dual UNION ALL
    SELECT 'e', 50, -1 FROM dual UNION ALL
    SELECT 'f', 61, -3 FROM dual UNION ALL
    SELECT 'g', 52, 200 FROM dual UNION ALL
    SELECT 'h', 61, 0 FROM dual UNION ALL
    SELECT 'i', 51, 100 FROM dual
)
SELECT * FROM test t
WHERE
    t.debt <= 0 AND
    (
        t.id = 50 OR
        t.id = 55 OR
        t.id = 61
    )

Код:
a	50	0
e 50 -1
f 61 -3
h 61 0
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #163 : 08-12-2010 10:24 » 

UNION мы еще не проходили
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #164 : 08-12-2010 10:26 » 

если все правильно

то

 1 and n_city=50 or n_city=55 and n_city=61

какой результат будет при
n_city=50
n_city=55
n_city=61
?


n_city=50
            true                false                  false
 1 and n_city=50 or n_city=55 and n_city=61
1 and true  or false and false =1*1 + 0*0 = 1

n_city=55
            true            false         false
 1 and 55=50 or 55=55 and 55=61
1*0 + 0*0 = 0

Так как я ошибся а хотел записать следующее, но от этого ничего не меняется


 1 and n_city=50 or n_city=55 or n_city=61

1 - это истинные условия предыдущих логических выражений

Так вот, при   n_city=55 or n_city=61 выберутся все поля со значением n_city 55 или 61
Следовательно, тф ЧТО-ТО делаешь неправильно.

да если бы выводились поля 55 или 61 было бы уже хорошо, а то у меня и 55 и 61 и 48 и другие всякие выводятся ((
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #165 : 08-12-2010 10:35 » 

UNION мы еще не проходили

Это я сделал только для того что бы не создавать у себя в схеме таблицу. Представь что есть таблица test, с вот таким заполнением:

Код:
a	50	0
b 51 -10
c 50 20
d 55 30
e 50 -1
f 61 -3
g 52 200
h 61 0
i 51 100

тогда запрос будет выглядеть так:

Код: (SQL)
SELECT * FROM test t
WHERE
    t.debt <= 0 AND
    (
        t.id = 50 OR
        t.id = 55 OR
        t.id = 61
    )

Я и спрашиваю, ты это пытаешься сделать?
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #166 : 08-12-2010 10:45 » 

UNION мы еще не проходили

Это я сделал только для того что бы не создавать у себя в схеме таблицу. Представь что есть таблица test, с вот таким заполнением:

Код:
a	50	0
b 51 -10
c 50 20
d 55 30
e 50 -1
f 61 -3
g 52 200
h 61 0
i 51 100

тогда запрос будет выглядеть так:

Код: (SQL)
SELECT * FROM test t
WHERE
    t.debt <= 0 AND
    (
        t.id = 50 OR
        t.id = 55 OR
        t.id = 61
    )

Я и спрашиваю, ты это пытаешься сделать?
ну что-то очень похожее. Просто я попробовала как у тебя сделать оракл не пропустил
Главное только внизу пишет "Ошибка на странице"
« Последнее редактирование: 08-12-2010 10:48 от Dana » Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #167 : 08-12-2010 10:51 » 

Dana, мне зайти к тебе и показать?
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #168 : 08-12-2010 10:54 » 

Попробуй
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #169 : 08-12-2010 11:09 » 

У тебя проблема с БД.


* Screenshot-9.png (19.28 Кб - загружено 1210 раз.)
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #170 : 08-12-2010 11:24 » 

У тебя проблема с БД.


это не моя база а учебная. А что все-таки в запросе не правильно?

select *
From client, computation, city
where client.n_client=computation.n_client
and n_debt>0 and {city.n_city=50 or
city.n_city=55 or
city.n_city=61}
and to_char(d_computation,'MM')='10'
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #171 : 08-12-2010 11:26 » 

Dana,

1. Ты сейчас взяла мой запрос (коряво его видо изменила, допустила ошибки) и спрашиваешь что у меня не правильно?
2. Значит проблема с учебной, вы больше с ней не сможете работать, пока не почистите!
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #172 : 08-12-2010 11:33 » 

 Ладно. Всем спасибо за участие и помощь Дарю!

Добавлено через 1 день, 21 час, 39 минут и 21 секунду:
Сумасшедшие продолжается Не надо
   Посчитать сумму долга клиента Александра Иванова за январь, февраль, март и апрель 2008 года.

Вырисовывается такая картинка:
Код:
select c_first_name, C_LAST_NAME  
From client,computation
where client.n_client=computation.n_client
and c_first_name in (select c_first_name from client where upper (c_first_name) like upper ('александр'))
and c_last_name in (select c_last_name from client where upper (c_last_name) like upper ('иванов'))
and n_debt = (select sum(n_debt) from computation)
and d_computation in ((d_computation,'MM')='03','01','02','03','04')
« Последнее редактирование: 10-12-2010 09:12 от Dana » Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #173 : 10-12-2010 09:36 » 

Dana, зачем тебе тут вложенные подзапросы? Почему ты не выводишь сумму долга?
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #174 : 10-12-2010 09:41 » 

Dana, зачем тебе тут вложенные подзапросы? Почему ты не выводишь сумму долга?
а это не вывод ссумы долга
n_debt = (select sum(n_debt) from computation)
а подзопросы для нахождения Александра Иванова
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #175 : 10-12-2010 09:47 » 

Посчитать сумму долга клиента Александра Иванова за январь, февраль, март и апрель 2008 года.

То есть считается что ее выводить не нужно? А какой смысл в подсчете тогда, если не видеть результат!?
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #176 : 10-12-2010 10:05 » 

Посчитать сумму долга клиента Александра Иванова за январь, февраль, март и апрель 2008 года.

То есть считается что ее выводить не нужно? А какой смысл в подсчете тогда, если не видеть результат!?
почему сумму долга и надо увидеть но только по Александру Иванову за январь, февраль март и апрель

Добавлено через 55 секунд:
Просто вывести select sum(n_debt) from computation
« Последнее редактирование: 10-12-2010 10:06 от Dana » Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #177 : 10-12-2010 10:09 » 

почему сумму долга и надо увидеть но только по Александру Иванову за январь, февраль март и апрель

Ну так я тебе хочу сказать, что ты ее не выводишь!

Где вот тут сумма долга?

Код: (SQL)
SELECT c_first_name, C_LAST_NAME
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #178 : 10-12-2010 10:43 » 

А так нельзя или не правильно

select c_first_name, C_LAST_NAME, n_debt
From client,computation
where client.n_client=computation.n_client
n_debt = (select sum(n_debt) from computation)
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #179 : 10-12-2010 10:57 » 

...
Записан

С уважением, Oldy.
Страниц: 1 ... 3 4 5 [6] 7   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines