powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Задачи по БД
8 сообщений из 8, страница 1 из 1
Задачи по БД
    #37107077
neic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задание звучит так:

Есть таблицы:
R1
Акция | Номинал

R2
Магазин | Акция | Цена

Задание:
Фондовый магазин, в котором все цены самые низкие

На другом форуме подсказали:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
with r2 as (
              select  1  store,  1  stock,  1  cost from dual
    union all select  2  store,  1  stock,  2  cost from dual
    union all select  1  store,  2  stock,  1  cost from dual
    union all select  3  store,  2  stock,  2  cost from dual
  )
  select store
  from r2 t1
  having  0 =sum((select count(*)
                 from r2 t2
                 where t1.store != t2.store
                   and t1.stock = t2.stock
                   and t1.cost >= t2.cost
              ))
group by store

Я его отредактировал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
with R2 as 
(
    select  1  МАГАЗИН,  1  АКЦИЯ,  1  ЦЕНА from dual
    union all select  2  МАГАЗИН,  1  АКЦИЯ,  2  ЦЕНА from dual
    union all select  1  МАГАЗИН,  2  АКЦИЯ,  1  ЦЕНА from dual
    union all select  3  МАГАЗИН,  2  АКЦИЯ,  2  ЦЕНА from dual
)

select МАГАЗИН
from R2 t1
having  0 =sum((select count(*)
               from r2 t2
               where t1.store != t2.store
                 and t1.stock = t2.stock
                 and t1.cost >= t2.cost
             ))
group by МАГАЗИН;

Вопросы:
1) Что за таблица dual?
2) Чем заменить MSSQL with в SQLite?
3) Я правильно редактирую пример под свою задачу?
...
Рейтинг: 0 / 0
Задачи по БД
    #37107117
neic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Из всего кода, меня интересует только:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select МАГАЗИН
from R2 t1
having  0 =sum((select count(*)
               from r2 t2
               where t1.store != t2.store
                 and t1.stock = t2.stock
                 and t1.cost >= t2.cost
             ))
group by МАГАЗИН;

Выдает ошибку:
авторSQLite Error 1 - near "GROUP":syntax error
...
Рейтинг: 0 / 0
Задачи по БД
    #37107506
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во первых, в SQLite нету WITH.
Во вторых, открой для себя опцию DISTINCT
...
Рейтинг: 0 / 0
Задачи по БД
    #37112801
maximand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
neic1) Что за таблица dual?


dual есть в oracle.
например:
Код: plaintext
select 'Hello World' as hi , sysdate from dual;
в sqlite будет:
Код: plaintext
select 'Hello World' as hi , datetime ('now');
...
Рейтинг: 0 / 0
Задачи по БД
    #37113667
neic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlВо первых, в SQLite нету WITH.
а ты это прочитал:
neic2) Чем заменить MSSQL with в SQLite?
и 2ой пост
neicИз всего кода, меня интересует только:

Я знаю что with нет в SQL.

maximanddual есть в oracle.
Спасибо буду знать.

Подправил запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select DISTINCT МАГАЗИН
from R2 T1
GROUP BY МАГАЗИН;
having  0 =sum((select count(*)
               from R2 T2
               where T1.store != T2.store
                 and T1.stock = T2.stock
                 and T1.cost >= T2.cost
             ))
Выдает ошибку:
SQLite Error 1 - near "having":syntax error
...
Рейтинг: 0 / 0
Задачи по БД
    #37113670
neic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так тоже выдает ошибку:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select DISTINCT МАГАЗИН
from R2 T1
GROUP BY МАГАЗИН;
having  0 =sum((select count(*)
               from R2 T2
               where T1.МАГАЗИН != T2.МАГАЗИН
                 and T1.АКЦИЯ = T2.АКЦИЯ
                 and T1.ЦЕНА >= T2.ЦЕНА
             ))
...
Рейтинг: 0 / 0
Задачи по БД
    #37113718
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что там ';' делает после МАГАЗИН ?
...
Рейтинг: 0 / 0
Задачи по БД
    #37114090
neic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry Arefiev,
Спасибо, что-то я слона и не заметил =)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Задачи по БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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