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

Откуда: Днепропетровск
Сообщений: 31
Добрый день, ребят я новичок в запросах и спросить кроме этого форума не у кого, подскажите пожалуйста что в этом запросе не так?
select (select orderAmount.uvalue from ud_address
join task on ud_address.id_address = task.id_address and task.taskSequence = 1
join [order] ord on task.id_order = ord.id_order
and ord.orderdate = '2014-05-18'
and ord.id_department = 9
join orderAmount on ord.id_order = orderAmount.id_order and orderAmount.id_unit = 4
where ud_address.udf_evening_deliveries =1)'Вечерка'

,orderAmount.uvalue 'День'
from [order]
left join orderAmount on [order].id_order = orderAmount.id_order
and orderAmount.id_unit = 4
where orderDate = '2014-05-16' and id_department = 9
20 май 14, 11:23    [16041340]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Yura1989,

Как минимум потенциальная ошибка 512
20 май 14, 11:26    [16041360]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
Кавказ-сила
Member

Откуда: Москва
Сообщений: 261
https://www.sql.ru/forum/127456/rekomendacii-po-oformleniu-soobshheniy-v-forume
предоставление Вами следующих материалов может существенно ускорить нахождение решения:
- скрипты создания таблиц;
- скрипты заполнения этих таблиц тестовыми данными;
- описание желаемого результата на примере тестовых данных.
20 май 14, 11:26    [16041362]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
_human
Member

Откуда:
Сообщений: 569
подзапрос возвращает больше 1-го значения ?
20 май 14, 11:31    [16041407]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
Yura1989
Member

Откуда: Днепропетровск
Сообщений: 31
_human, Да, как правильно должен выглядеть запрос?
20 май 14, 11:33    [16041421]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
_human
Member

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

1) все таки прочитайте.

2) рахитный вариант
(
select top (1)
orderAmount.uvalue
from ud_address
join task on ud_address.id_address = task.id_address and task.taskSequence = 1
join [order] ord on task.id_order = ord.id_order and ord.orderdate = '2014-05-18' and ord.id_department = 9
join orderAmount on ord.id_order = orderAmount.id_order and orderAmount.id_unit = 4
where ud_address.udf_evening_deliveries =1
order by [...]
) 'Вечерка'
20 май 14, 11:36    [16041447]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
Yura1989
Member

Откуда: Днепропетровск
Сообщений: 31
_human, мне нужно что бы два запроса были в одном для репорт билдера. Я новенький в запросах, первый раз пробую объединить два запроса в 1
20 май 14, 11:36    [16041449]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
А кто-нибудь здесь догадывается о тэге SRC?
Вы мне глаза сломали!
20 май 14, 11:37    [16041454]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
Yura1989
Member

Откуда: Днепропетровск
Сообщений: 31
_human, при добавления top(1) высыпает первое найденное и всё.
насчет этого: - скрипты создания таблиц;
- скрипты заполнения этих таблиц тестовыми данными;
- описание желаемого результата на примере тестовых данных.
У меня доступ на только чтение БД и использования функций.
Желаемый результат:
видеть заказы первый столбец вчерашней датой, второй столбец сегодняшней.
20 май 14, 11:42    [16041485]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
Кавказ-сила
Member

Откуда: Москва
Сообщений: 261
Yura1989
У меня доступ на только чтение БД и использования функций
20 май 14, 11:45    [16041512]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
_human
Member

Откуда:
Сообщений: 569
Yura1989,
автор
Я новенький в запросах

данные предоставить наверное сможете. сформулировать задачу.

+
о тэге SRC

у меня как-то смутно работает вставка тегов =(
20 май 14, 11:45    [16041515]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
_human
Member

Откуда:
Сообщений: 569
Yura1989
Желаемый результат:
видеть заказы первый столбец вчерашней датой, второй столбец сегодняшней.

в вашем запросе для "вечерки" берется дата больше чем для "дня".
20 май 14, 11:55    [16041600]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
Yura1989
Member

Откуда: Днепропетровск
Сообщений: 31
_human, В общем есть магазины ночные\дневные, заказы дневных магазинов импортируются вчерашней датой, заказы ночных сегодняшней. Мне нужно видеть в двух столбцах первые дневные дата : 2014-05-19 второй ночные дата : 2014-05-20. Отображаемое значение это количество паллет.
Я использовал ud_address так как в этой таблице есть отметка, принадлежат ли эти магазины ночной\дневной;
в таблице task есть и id_order и id_address,я связал task и ud_address;
в таблице [order] есть дата создания заказа;
в таблице orderAmount есть кг и паллеты связал через id_order.
20 май 14, 11:58    [16041623]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
_human
Member

Откуда:
Сообщений: 569
Yura1989
Отображаемое значение это количество паллет.

даты подставьте
select 
(
	select 
		count(orderAmount.uvalue) as cnt_eve 
	 from ud_address
		join task on ud_address.id_address = task.id_address and task.taskSequence = 1
		join [order] ord on task.id_order = ord.id_order and ord.orderdate = '2014-05-18' and ord.id_department = 9
		join orderAmount on ord.id_order = orderAmount.id_order and orderAmount.id_unit = 4
	 where ud_address.udf_evening_deliveries =1
) 'Вечерка'
,count(orderAmount.uvalue 'День'
from [order]
	left join orderAmount on [order].id_order = orderAmount.id_order and orderAmount.id_unit = 4
where orderDate = '2014-05-16' and id_department = 9
20 май 14, 12:13    [16041783]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
_human
Member

Откуда:
Сообщений: 569
select 
(
	select 
		count(orderAmount.uvalue) cnt_eve 
	 from ud_address
		join task on ud_address.id_address = task.id_address and task.taskSequence = 1
		join [order] ord on task.id_order = ord.id_order and ord.orderdate = convert(varchar(8), getdate(), 112) and ord.id_department = 9
		join orderAmount on ord.id_order = orderAmount.id_order and orderAmount.id_unit = 4
	 where ud_address.udf_evening_deliveries =1
) 'Вечерка'
,count(orderAmount.uvalue) 'День'
from [order]
	left join orderAmount on [order].id_order = orderAmount.id_order and orderAmount.id_unit = 4
where orderDate = convert(varchar(8), dateadd(day, -1, getdate()), 112) and id_department = 9 
20 май 14, 12:17    [16041814]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
_human
Member

Откуда:
Сообщений: 569
Yura1989,
если в orderAmount кол-во, то используйте sum() вместо count()
20 май 14, 12:20    [16041848]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
Yura1989
Member

Откуда: Днепропетровск
Сообщений: 31
_human,
Спасибо работает, только я получил количество заказов, а мне нужна сумма паллет, попробую сам подправить.
20 май 14, 12:22    [16041871]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
Yura1989
Member

Откуда: Днепропетровск
Сообщений: 31
_human,
Спасибо Вам огромное!!!
20 май 14, 12:27    [16041921]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
Yura1989
Member

Откуда: Днепропетровск
Сообщений: 31
_human,
Последний гениальный вопрос), как сложить теперь запросом то что я получил в одну цифру)?
20 май 14, 12:59    [16042124]     Ответить | Цитировать Сообщить модератору
 Re: Два select  [new]
_human
Member

Откуда:
Сообщений: 569
Yura1989
сложить теперь запросом то что я получил в одну цифру)?

+ ?
не понял вопроса)
20 май 14, 13:19    [16042272]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить