Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
 Помогите начинающему SQLщику)  [new]
mavrikVIII
Member

Откуда:
Сообщений: 5
Всем доброе время суток)
Есть таблица, скрин приложил. Нужно вывести все дочерние элементы у 4-д/1. Т.е. должен "гулять" по полям Link и F_docs.
Пробую сделать так:
select
t2.LINK,
t2.C_Number,
t2.F_Docs
from DD_Docs as t1, DD_Docs as t2
where (t2.Link = t1.F_Docs )
Так выводит все, а когда добавляю условие
and t2.C_Number = '4-д/1'; выводит одно значение.

Просьба не сильно критиковать, только начал изучение. ПРошу помощи)

К сообщению приложен файл. Размер - 14Kb
13 мар 19, 10:45    [21831042]     Ответить | Цитировать Сообщить модератору
 Re: Помогите начинающему SQLщику)  [new]
mavrikVIII
Member

Откуда:
Сообщений: 5
ошибочка, не дочерние, а родительские)
13 мар 19, 10:52    [21831052]     Ответить | Цитировать Сообщить модератору
 Re: Помогите начинающему SQLщику)  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 18845
mavrikVIII
не дочерние, а родительские
Без разницы.

Указывайте точно используемую СУБД, включая версию.
13 мар 19, 11:04    [21831064]     Ответить | Цитировать Сообщить модератору
 Re: Помогите начинающему SQLщику)  [new]
mavrikVIII
Member

Откуда:
Сообщений: 5
Akina,

SQL Server Management Studio v17.9.1
13 мар 19, 11:10    [21831069]     Ответить | Цитировать Сообщить модератору
 Re: Помогите начинающему SQLщику)  [new]
avlaxoft
Member

Откуда: г. Калуга
Сообщений: 479
mavrikVIII
Akina,

SQL Server Management Studio v17.9.1


Это не версия СУБД, а средство, помогающее разрабатывать и администрировать базу
13 мар 19, 12:37    [21831188]     Ответить | Цитировать Сообщить модератору
 Re: Помогите начинающему SQLщику)  [new]
mavrikVIII
Member

Откуда:
Сообщений: 5
[quot avlaxoft]
mavrikVIII
Akina,

SQL Server Management Studio v17.9.1


Это не версия СУБД, а средство, помогающее разрабатывать и администрировать базу[/quot

ПРошу простить мою глупость, а как узнать версию СУБД?
13 мар 19, 13:07    [21831226]     Ответить | Цитировать Сообщить модератору
 Re: Помогите начинающему SQLщику)  [new]
Програмёр
Member

Откуда: Москва
Сообщений: 2999
mavrikVIII
Всем доброе время суток)
Есть таблица, скрин приложил. Нужно вывести все дочерние элементы у 4-д/1. Т.е. должен "гулять" по полям Link и F_docs.
Пробую сделать так:
select
t2.LINK,
t2.C_Number,
t2.F_Docs
from DD_Docs as t1, DD_Docs as t2
where (t2.Link = t1.F_Docs )
Так выводит все, а когда добавляю условие
and t2.C_Number = '4-д/1'; выводит одно значение.

Просьба не сильно критиковать, только начал изучение. ПРошу помощи)


Тут как бы вот какая проблема :) Я, например, не понял что надо сделать. Ты говоришь на своём языке предполагая нечто известное только тебе :) Думаю я не один такой.

Опиши толково что ты хочешь получить в результате запроса. Я так понял, что линк, это типа идентификатор записи? Тогда сразу для лучшего понимая приложи к своему пояснению и список значений link, которые должны попасть в выборку. Тогда наверняка кто-то поможет (и я хотя бы попытаться смогу)

P.S. Версию скьюля можно узнать выполнив SELECT @@VERSION;
13 мар 19, 13:28    [21831268]     Ответить | Цитировать Сообщить модератору
 Re: Помогите начинающему SQLщику)  [new]
Програмёр
Member

Откуда: Москва
Сообщений: 2999
P.S. случайно раньше времени отправил :) Так точно можно узнать версию mySQL (и mariaDB, у меня вот она стоит). К сожалению не уверен что и на других серверах оно работает так же, потому не факт ,что сработает.
13 мар 19, 13:30    [21831272]     Ответить | Цитировать Сообщить модератору
 Re: Помогите начинающему SQLщику)  [new]
MirnyiAtom
Member

Откуда:
Сообщений: 29
mavrikVIII,

Смотрите в сторону иерархических(рекурсивных) запросов, синтаксис смотрите для вашей версии БД, так как он отличается.
Например, вот статья на хабре:
https://habr.com/ru/post/43955/
14 мар 19, 11:09    [21832189]     Ответить | Цитировать Сообщить модератору
 Re: Помогите начинающему SQLщику)  [new]
mavrikVIII
Member

Откуда:
Сообщений: 5
Спасибо.
Есть еще один вопрос:
задача такого плана: Требуется вывести дату номер и сумму начислений, для которых сумма превышает сумму предыдущего по дате начисления.
Вообщем я сделал так:


use DBTestPractice;
select D_Date,
C_Number,
N_Amount,
lag (n_amount) OVER (order by d_date) as n_amount_b,
N_Amount - LAG(N_Amount,1,0) OVER (ORDER BY D_date) as diff

from FD_Bills
--where
order by D_Date

Хочу написать select который будет сравнивать n_amount и n_amount_b и если n_amount будет больше n_amount_b, то вывести эту строку.

К сообщению приложен файл. Размер - 41Kb
14 мар 19, 11:37    [21832249]     Ответить | Цитировать Сообщить модератору
Все форумы / Программирование Ответить