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

Откуда:
Сообщений: 6
Помогите исправить запрос!
set dateformat dmy
SELECT
S.PARENTID AS ЛСЧ
,ISNULL(S.ESLD,0.00) AS Сальдо
FROM
SLD S
,KART_SERVICES KS
WHERE
S.ID_SERV=44302
AND S.SDATE >= '01.3.2012' -- За какой период выбрать Сальдо
AND KS.ID_PROVIDER=240124
AND S.PARENTID = KS.PARENTID
AND KS.EDATE IS NOT NULL

Две таблицы "Sld" и "Kart_services". Общие поля Parentid.
Нужно вывести сальдо из таблицы Sld, только по тем услугам ID_Serv, которые в таблице Kart_services имеют закрытые услуги, т.е. KS.EDATE = не пустая дата.
Но есть случаи, где по одной и той же PARENTID есть услуги в KART_Services, где они закрыты и снова открыты, как в примере ниже.
Получается, что услуга по данной PARENTID=227218, в KART_SERVICES имеются две записи, в одной записи она закрыта, в другой открыта и получается сальдо по нему не надо выводить.
Спасибо.
6 апр 12, 12:31    [12375267]     Ответить | Цитировать Сообщить модератору
 Re: Помогите исправить запрос SQL  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
SELECT S.PARENTID AS ЛСЧ,ISNULL(S.ESLD,0.00) AS Сальдо
FROM SLD S
JOIN KART_SERVICES KS ON S.PARENTID = KS.PARENTID
WHERE S.ID_SERV=44302 
AND S.SDATE >= '20120301' -- За какой период выбрать Сальдо
AND KS.ID_PROVIDER=240124 
AND NOT EXISTS(SELECT * FROM KART_SERVICES KS1 WHERE KS1.PARENTID=KS.PARENTID AND KS1.EDATE IS NULL)
??
6 апр 12, 12:38    [12375324]     Ответить | Цитировать Сообщить модератору
 Re: Помогите исправить запрос SQL  [new]
Mif66
Member

Откуда:
Сообщений: 6
Извините, таблица "испарилась"

Помогите исправить запрос!
set dateformat dmy
SELECT
S.PARENTID AS ЛСЧ
,ISNULL(S.ESLD,0.00) AS Сальдо
FROM
SLD S
,KART_SERVICES KS
WHERE
S.ID_SERV=44302
AND S.SDATE >= '01.3.2012' -- За какой период выбрать Сальдо
AND KS.ID_PROVIDER=240124
AND S.PARENTID = KS.PARENTID
AND KS.EDATE IS NOT NULL

Две таблицы "Sld" и "Kart_services". Общие поля Parentid.
Нужно вывести сальдо из таблицы Sld, только по тем услугам ID_Serv, которые в таблице Kart_services имеют закрытые услуги, т.е. KS.EDATE = не пустая дата.
Но есть случаи, где по одной и той же PARENTID есть услуги в KART_Services, где они закрыты и снова открыты, как в примере ниже.

SLD
-------------------------------------------------------------------------------------------
ID ParentID ID_SERV sdate esld ID_provider
-------------------------------------------------------------------------------------------
2524401 227218 44302 01.03.2012 0:00:00 813.6200 240124

SLD
-------------------------------------------------------------------------------------------
ID ParentID ID_SERV bdate edate ID_provider
-------------------------------------------------------------------------------------------
57259 227218 44302 01.08.2007 0:00:00 31.08.2011 0:00:00 240124
57260 227218 44302 01.09.2011 0:00:00 NULL 240124

Получается, что услуга по данной PARENTID=227218, в KART_SERVICES имеются две записи, в одной записи она закрыта, в другой открыта и получается сальдо по нему не надо выводить.
Спасибо.
6 апр 12, 12:43    [12375362]     Ответить | Цитировать Сообщить модератору
 Re: Помогите исправить запрос SQL  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Mif66,

токуете, да?
6 апр 12, 12:49    [12375418]     Ответить | Цитировать Сообщить модератору
 Re: Помогите исправить запрос SQL  [new]
Mif66
Member

Откуда:
Сообщений: 6
iap,
Спасибо за быстрый ответ. Буду проверять. Здорово! Как жаль что раньше не был на этом сайте.
6 апр 12, 12:50    [12375435]     Ответить | Цитировать Сообщить модератору
 Re: Помогите исправить запрос SQL  [new]
Mif66
Member

Откуда:
Сообщений: 6
iap,не понял, что значит токуете?
6 апр 12, 12:51    [12375452]     Ответить | Цитировать Сообщить модератору
 Re: Помогите исправить запрос SQL  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mif66
Здорово! Как жаль что раньше не был на этом сайте.
Интересно, с какой точки зрения?
Типа ща пацаны пахаляву мне работу сделают. А я ещё буду им глаза ломать - не буду ставить код в тег [ src ] (оформление постов)
???
6 апр 12, 13:08    [12375598]     Ответить | Цитировать Сообщить модератору
 Re: Помогите исправить запрос SQL  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Mif66
iap,не понял, что значит токуете?
Когда тетерев-косач токует, он не обращает ни на что внимания и ничего не слышит.
А Вы об этом не знали?
6 апр 12, 13:15    [12375678]     Ответить | Цитировать Сообщить модератору
 Re: Помогите исправить запрос SQL  [new]
Mif66
Member

Откуда:
Сообщений: 6
iap,ну зря Вы так накинулись на меня.
Данный форум мне посоветовал мой хороший знакомый, кстати, он тоже из Москвы. Я в SQL вообще можно сказать не работаю. А у нас база на SQL, на предприятии. Программа покупная. Так вот мне нужно иногда вытаскивать из нее данные, с которыми я потом уже работаю в своей программе. Хотя немного (ну очень немного) я смог сам написать сам, а вот сложные запросы делать не умею.
А поводу "Типа ща пацаны на халяву мне работу сделают..." это Вы зря. Я буду разбираться с данным запросом, думаю еще не раз пригодится.
6 апр 12, 13:50    [12375994]     Ответить | Цитировать Сообщить модератору
 Re: Помогите исправить запрос SQL  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Mif66,

про халяву я ничего не говорил.
А вот мой ответ Вы проигнорировали,
повторив свой пост через пять минут после моего.
Вот я Вам и говорю, что Вы только пишете, но не читаете, что пишут Вам.
6 апр 12, 13:57    [12376075]     Ответить | Цитировать Сообщить модератору
 Re: Помогите исправить запрос SQL  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
iap
про халяву я ничего не говорил
iap, У человека с виду синдром - плохо сопоставляет объекты и субъектов с ними связанных, а также определение важности вещей для тех же субъектов.


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

Вы считаете, что все должны тупо идти на работу ничего не зная, а потом идти на форумы за халявным ответами?
Да это развалит отрасль за пару лет в хлам.

Идите на курсы, обучайтесь. Заметьте, курсы и бесплатные есть. Вот можно банально пройти http://sql-ex.ru/

Mif66
А у нас база на SQL, на предприятии. Программа покупная. ... а вот сложные запросы делать не умею.
Как это ... нормально, чтоле. Руководящим дядькам может и за 50, а может только 25, а совки ещё те. И скорее всего в состоянии "Жизнь удалась" и "Всё под контролем", "Всё правильно сделал".

И ещё - оформляйте посты. Ставьте в теги. Словно в нете первый раз.
7 апр 12, 18:07    [12380836]     Ответить | Цитировать Сообщить модератору
 Re: Помогите исправить запрос SQL  [new]
Mif66
Member

Откуда:
Сообщений: 6
iap
SELECT S.PARENTID AS ЛСЧ,ISNULL(S.ESLD,0.00) AS Сальдо
FROM SLD S
JOIN KART_SERVICES KS ON S.PARENTID = KS.PARENTID
WHERE S.ID_SERV=44302 
AND S.SDATE >= '20120301' -- За какой период выбрать Сальдо
AND KS.ID_PROVIDER=240124 
AND NOT EXISTS(SELECT * FROM KART_SERVICES KS1 WHERE KS1.PARENTID=KS.PARENTID AND KS1.EDATE IS NULL)
??

Скажите, правильно ли я понял данную строку:
AND NOT EXISTS(SELECT * FROM KART_SERVICES KS1 WHERE KS1.PARENTID=KS.PARENTID AND KS1.EDATE IS NULL)
Исключаем все записи из KART_SERVICES, где KS1.EDATE равна NULL?
9 апр 12, 08:22    [12385577]     Ответить | Цитировать Сообщить модератору
 Re: Помогите исправить запрос SQL  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mif66
Скажите, правильно ли я понял данную строку:
AND NOT EXISTS(SELECT * FROM KART_SERVICES KS1 WHERE KS1.PARENTID=KS.PARENTID AND KS1.EDATE IS NULL)
Исключаем все записи из KART_SERVICES, где KS1.EDATE равна NULL?
Исключаем записи, если существует "сосед" (в дереве?) [KS1.PARENTID=KS.PARENTID] (или он сам), который не закрыт [KS1.EDATE IS NULL]
9 апр 12, 10:11    [12385938]     Ответить | Цитировать Сообщить модератору
 Re: Помогите исправить запрос SQL  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Mif66
iap
SELECT S.PARENTID AS ЛСЧ,ISNULL(S.ESLD,0.00) AS Сальдо
FROM SLD S
JOIN KART_SERVICES KS ON S.PARENTID = KS.PARENTID
WHERE S.ID_SERV=44302 
AND S.SDATE >= '20120301' -- За какой период выбрать Сальдо
AND KS.ID_PROVIDER=240124 
AND NOT EXISTS(SELECT * FROM KART_SERVICES KS1 WHERE KS1.PARENTID=KS.PARENTID AND KS1.EDATE IS NULL)
??

Скажите, правильно ли я понял данную строку:
AND NOT EXISTS(SELECT * FROM KART_SERVICES KS1 WHERE KS1.PARENTID=KS.PARENTID AND KS1.EDATE IS NULL)
Исключаем все записи из KART_SERVICES, где KS1.EDATE равна NULL?
Mif66
Но есть случаи, где по одной и той же PARENTID есть услуги в KART_Services, где они закрыты и снова открыты, как в примере ниже.
Получается, что услуга по данной PARENTID=227218, в KART_SERVICES имеются две записи, в одной записи она закрыта, в другой открыта и получается сальдо по нему не надо выводить.
9 апр 12, 21:33    [12390445]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить