Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос SQL / 12 сообщений из 12, страница 1 из 1
28.04.2019, 21:31
    #39807351
Ademovo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Добрый вечер!
Помогите, пожалуйста, составить запрос по буквой р
Учусь только писать запросы, ломаю голову который час никак не могу придумать.
Пробовала с decode, case, но все что-то не то
...
Рейтинг: 0 / 0
28.04.2019, 22:35
    #39807354
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Ademovo,

Using PIVOT and UNPIVOT: Examples нуи старый дедовский метод с DECODE/CASE прекрасно работает. Покажи что наваяла, подскажем что не так.

SY.
...
Рейтинг: 0 / 0
28.04.2019, 22:52
    #39807357
Ademovo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
SY,

спасибо в этой задаче разобралась.
Подскажите, пожалуйста, по другой, если мне нужно вывести номера клиентов, колво строк размещенных заказов. Возвращать только номера тех клиентов, которые разместили хотя бы один заказ.

будет ли работать какой то из этих способов?
1. select CustomerName, sum(ordersum), isnull(orderNo, 0) from customer c, order h
where c.customerNo=h.customerNo( в разных таблицах находятся)
group by CustomerName, orderNo

2. select CustomerName, sum(ordersum),
decode(count(orderNo), 0,0, orderNo) from customer c, order h
where c.customerNo=h.customerNo
group by CustomerName, orderNo
...
Рейтинг: 0 / 0
29.04.2019, 02:23
    #39807384
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Вот так гораздо читабельней
Код: sql
1.
2.
3.
select CustomerName, sum(ordersum), isnull(orderNo, 0) from customer c, order h
where c.customerNo=h.customerNo( в разных таблицах находятся)
group by CustomerName, orderNo



Код: sql
1.
2.
3.
4.
select CustomerName, sum(ordersum),
decode(count(orderNo), 0,0, orderNo) from customer c, order h
where c.customerNo=h.customerNo
group by CustomerName, orderNo
...
Рейтинг: 0 / 0
29.04.2019, 02:34
    #39807385
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Крайне желательно указывать имя таблицы к каждому используемому полю.

Подскажите, пожалуйста, по другой, если мне нужно вывести номера клиентов, group by CustomerName
orderNo - видимо номер заказа и группировать по нему не нужно.

Кол-во строк размещенных заказов - count(CustomerName)
Возвращать только номера тех клиентов, которые разместили хотя бы один заказ
-при соединении таблиц (c.customerNo=h.customerNo) у тебя сразу тсеются клиенты без заказов.
...
Рейтинг: 0 / 0
29.04.2019, 13:37
    #39807598
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Ademovoнужно вывести номера клиентов, колво строк размещенных заказов. Возвращать только номера тех клиентов, которые разместили хотя бы один заказ.

будет ли работать какой то из этих способов?


Не будет. Hужно вывести номера клиентов, а ты группируешь по CustomerName, orderNo. Соответственно GROUP BY вернет по одной записи на заказ а не по одной записи на клиентa.

SY.
...
Рейтинг: 0 / 0
03.05.2019, 15:06
    #39809502
Ademovo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
982183,

спасибо!
...
Рейтинг: 0 / 0
03.05.2019, 15:06
    #39809503
Ademovo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
SY,

еще раз спасибо!
...
Рейтинг: 0 / 0
11.05.2019, 08:01
    #39811986
kolesan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Тоже обучаюсь. Подскажите, пожалуйста, как решить следующую задачу.
Имеются колонки, в которых содержатся записи с "только цифрами", и с "цифры вперемешку с буквами и пробелам".
Мне нужно возвратить колонки только с цифрами.

Код: plsql
1.
2.
3.
select *
from LOCATIONS
where postal_code not like '%[^0-9]%';
...
Рейтинг: 0 / 0
11.05.2019, 08:08
    #39811988
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
kolesanТоже обучаюсь.Это не повод притворяться отвечающим, а не задающим.
kolesan
Код: plsql
1.
like '%[^0-9]%'

RTFM Pattern-matching Conditions (FAQ)
...
Рейтинг: 0 / 0
11.05.2019, 08:17
    #39811990
kolesan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Elic,

спасибо за документацию. А про "отвечающего" не понял. Лучше свою тему создавать?
...
Рейтинг: 0 / 0
11.05.2019, 10:25
    #39812001
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
kolesanТоже обучаюсь. Подскажите, пожалуйста, как решить следующую задачу.
Имеются колонки, в которых содержатся записи с "только цифрами", и с "цифры вперемешку с буквами и пробелам".
Мне нужно возвратить колонки только с цифрами.

Код: plsql
1.
2.
3.
select *
from LOCATIONS
where postal_code not like '%[^0-9]%';



возвратить колонки или строки?

зы
строки не регуляркой (tranclate, trim)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SQL> ed
Wrote file afiedt.buf

  1  with t as (
  2  select '123 456' s from dual union all
  3  select '1230456' s from dual union all
  4  select 'xyz abc' s from dual union all
  5  select '' s from dual
  6  )
  7  select * from t
  8  where --translate(nvl(s,'*'),'@1234567890','@') is null
  9*         ltrim(nvl(s,'*'),'1234567890') is null
SQL> /

S
-------
1230456



....
stax
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос SQL / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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