Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 November 18

NP

Nick Proskuryakov in SqlCom.ru - Стиль жизни SQL
Timus
устроить коктейль из системных таблиц и динамического SQL и будет счастье человеку
Согласен
источник

f

f in SqlCom.ru - Стиль жизни SQL
Никита
Запрос из таблицы строки отсортированы ORDER BY, а есть ли такая же функция для сортировки по столбов?
А вам зачем?
Что за требование такое?
источник

AG

Andrey Gubanov in SqlCom.ru - Стиль жизни SQL
бьюсь с одним запросом - Дается таблица DTT.
В таблице собраны агрегированные данные  по продажам за весь период работы компании в разрезе дата, магазин, товар
   (
     date_tt  date --дата
    , id_tt     int     --ид магазина
    , id_tov  int     --ид товара
   ,  qty       int     --количество проданного
   )

Вывести идентификаторы товаров-новинок ( id_tov) , которые стали продаваться впервые за последние 30 дней.   Я написал как вывести товары за последние 30 дней SELECT id_tov FROM DTT WHERE id_tov WHERE date_tt > NOW() - INTERVAL 30 DAY. Но не могу понять как вычленить товары-новинки, была идея создать лист отдельный, но не сработало. Теперь думаю, как сделать через вложенный запрос. Может кто помочь?
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
Andrey Gubanov
бьюсь с одним запросом - Дается таблица DTT.
В таблице собраны агрегированные данные  по продажам за весь период работы компании в разрезе дата, магазин, товар
   (
     date_tt  date --дата
    , id_tt     int     --ид магазина
    , id_tov  int     --ид товара
   ,  qty       int     --количество проданного
   )

Вывести идентификаторы товаров-новинок ( id_tov) , которые стали продаваться впервые за последние 30 дней.   Я написал как вывести товары за последние 30 дней SELECT id_tov FROM DTT WHERE id_tov WHERE date_tt > NOW() - INTERVAL 30 DAY. Но не могу понять как вычленить товары-новинки, была идея создать лист отдельный, но не сработало. Теперь думаю, как сделать через вложенный запрос. Может кто помочь?
гроуп бай ид_тов
хевинг мин(дейт) > Now() - 30
источник

AG

Andrey Gubanov in SqlCom.ru - Стиль жизни SQL
@barbedx то есть весь запрос будет выглядеть так select id_tov from dtt group by id_tov having min(date) > now() - 30 или я не так понял?
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
Andrey Gubanov
@barbedx то есть весь запрос будет выглядеть так select id_tov from dtt group by id_tov having min(date) > now() - 30 или я не так понял?
да так
источник

AG

Andrey Gubanov in SqlCom.ru - Стиль жизни SQL
@barbedx хм, спасибо!
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
только там нов() - 30 наверное через dateadd отнять надо, не уверен
источник

IC

Igor Chizhov in SqlCom.ru - Стиль жизни SQL
Andrey Gubanov
@barbedx то есть весь запрос будет выглядеть так select id_tov from dtt group by id_tov having min(date) > now() - 30 или я не так понял?
Это MS или PG?
источник

AG

Andrey Gubanov in SqlCom.ru - Стиль жизни SQL
@Chizh1979 я изначалаьно MS делал
источник

IC

Igor Chizhov in SqlCom.ru - Стиль жизни SQL
Тогда select id_tov from dtt group by id_tov having min(date) > dateadd(day, - 30,getdate())
источник

Р

Роман in SqlCom.ru - Стиль жизни SQL
Всем привет, подскажите пожалуйста есть ли какой нибудь запрос или способ как в SQL можно выдать сразу доступ для всех views? а не выдавать по одной. Просто их более 1000 штук, и это будет очень долго и мучительно
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Роман
Всем привет, подскажите пожалуйста есть ли какой нибудь запрос или способ как в SQL можно выдать сразу доступ для всех views? а не выдавать по одной. Просто их более 1000 штук, и это будет очень долго и мучительно
МОжно сгенерировать скрипт на основании метаданных БД, а затем его выполнить.
ЛИбо — динамически генерируемые запросы также на основании метаданных БД
источник

Р

Роман in SqlCom.ru - Стиль жизни SQL
а есть где примеры посмотреть?
источник
2020 November 19

G

Gabriel in SqlCom.ru - Стиль жизни SQL
Может кто-то подсказать, как правильно прописать запрос?
источник

G

Gabriel in SqlCom.ru - Стиль жизни SQL
Задача запроса - вывести все проекты(их имена) и количество участников в них.
Написал запрос:

SELECT Name, COUNT(*) AS ParticipantCount
FROM Projects,Participation
WHERE Participation.EmpNo = Projects.TabNo AND (Participation.Role = 'Руководитель проекта' OR 'Заместитель руководителя проекта' OR 'Разработчик')

Но он выводит только имя одного проекта и для него кол-во участников. Как сделать так, чтобы все имена проектов выводило?
источник

R

Randomnickname in SqlCom.ru - Стиль жизни SQL
Через join или подзапросом
источник

T

Timus in SqlCom.ru - Стиль жизни SQL
Gabriel
Может кто-то подсказать, как правильно прописать запрос?
а что за БД? ну и да - условия на OR вроде по другому пишутся
источник

G

Gabriel in SqlCom.ru - Стиль жизни SQL
Randomnickname
Через join или подзапросом
Сделал подзапросом.
источник

KT

Konstantin Taranov in SqlCom.ru - Стиль жизни SQL
Обновил раздел с рекомендациями по использованию встроенных функций в SQL Server https://github.com/ktaranov/sqlserver-kit/blob/master/SQL%20Server%20Name%20Convention%20and%20T-SQL%20Programming%20Style.md#function-recommendation
буду рад обратной связи и дополнениям
источник