Shilpa_g2 Ответов: 3

Out put из двух запросов в один


дорогие все

У меня есть два вопроса

select a.brcd,round(sum(outamt)/1000,0) amt from cis 
group by a.brcd order by amt desc
)


and 

<pre>select brcd, round(sum(outamt)/1000,0) amt from cis  where   assetcd !='IR00001' group by a.brcd order by amt desc



как объединить два запроса так, чтобы

Из таблицы с продажами филиалов по регионам,
Я хочу выбрать десять лучших филиалов с ,
сумма продаж с максимальными продажами без учета товара< данного кода> и общая сумма продаж этих филиалов

Что я уже пробовал:

select * from(
    select a.brcd,
    round(sum(b.outamt)/1000,0) sale,
    round(sum(a.outamt)/1000,0) totalsale from cis a
    inner join
    (select brcd, outamt from cis  where   assetcd !='IR00001') b 
    on b.brcd=a.brcd
    group by a.brcd order by sale desc
)  where    rownum <11;

OriginalGriff

Это не имеет большого смысла в нынешнем виде - возможно, если бы вы дали нам короткий пример ввода и вывода, который вам нужен, это помогло бы?

Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

Sarita B Patil

попробовать это

Создайте таблицу [dbo].[StudentMaster](
[StudentId] [numeric](18, 0) NOT NULL,
[StudentName] [varchar](50) NULL
) НА [ПЕРВИЧНОМ]

ГО
Вставить в StudentMaster(StudentID, StudentName) значения (1,'Garry')
Вставить в StudentMaster(StudentID, StudentName) значения (2,'Alex')
Вставить в StudentMaster(StudentID, StudentName) значения (3,'Sam')
Вставить в StudentMaster(StudentID, StudentName) значения (4,'Paul')
Вставить в StudentMaster(StudentID, StudentName) значения (5,'Ben')
Выберите * от StudentMaster
ГО

Создайте таблицу [dbo].[Курсы](
[CourseID] [int] NOT NULL,
[Имя курса] [nvarchar](20) NULL,
ПЕРВИЧНЫЙ КЛЮЧ КЛАСТЕРНЫЙ
(
[Идентификатор_курса] АСК
)С (КАК = ВЫКЛ, STATISTICS_NORECOMPUTE = OFF, ТО ЗНАЧЕНИЕ IGNORE_DUP_KEY = OFF, ТО ПАРАМЕТРЫ ALLOW_ROW_LOCKS = ON, ТО ALLOW_PAGE_LOCKS ИНСТРУКЦИИ =) НА [ОСНОВНОЙ]
) НА [ПЕРВИЧНОМ]

ГО

Вставить в курсы(CourseId,CourseName) значения (1,'C#')
Вставить в курсы(CourseId,CourseName) значения (2,'ASP.Net')
Вставить в курсы(CourseId,CourseName) значения (3,'MVC')
Вставить в курсы(CourseId,CourseName) значения (4,'WCF')
Вставить в курсы(CourseId,CourseName) значения (5,'Share Point')
Вставить в курсы(CourseId,CourseName) значения (6,'WPF')
Вставить в курсах(Идентификатор_курса,CourseName) значения (7,'SQL сервер')
Вставить в курсы(CourseId,CourseName) значения (8,'JQuery')
Выберите * из курсов

ГО

Создайте таблицу [dbo].[StudentCourses](
[StudentID] [int] NULL,
[Идентификатор_курса] [инт] нуль
) НА [ПЕРВИЧНОМ]

ГО

Вставить в StudentCourses(StudentID, CourseID) значения (1,1)
Вставить в StudentCourses(StudentID, CourseID) значения (1,3)
Вставить в StudentCourses(StudentID, CourseID) значения (1,5)
Вставить в StudentCourses(StudentID, CourseID) значения (2,2)
Вставить в StudentCourses(StudentID, CourseID) значения (2,4)
Вставить в StudentCourses(StudentID, CourseID) значения (2,5)
Вставить в StudentCourses(StudentID, CourseID) значения (3,3)
Вставить в StudentCourses(StudentID, CourseID) значения (3,6)
Вставить в StudentCourses(StudentID, CourseID) значения (4,7)
Вставить в StudentCourses(StudentID, CourseID) значения (4,8)
Вставить в StudentCourses(StudentID, CourseID) значения (5,1)
Вставить в StudentCourses(StudentID, CourseID) значения (5,2)
Выберите * из StudentCourses




выберите t11.StudentID,StudentMaster.StudentName,t11.CourseNames from
(Выберите StudentID,
CourseNames=вещи
(
(
Выберите DISTINCT ', '+ CAST(g.CourseName AS VARCHAR(MAX))
Из курсов g,StudentCourses e
Где г.Идентификатор_курса=е.Идентификатор_курса и электронной.StudentID=Т1.StudentID
Для XMl-пути(")
),1,1,''
)
Из студенческих курсов Т1
Группа по StudentID ) как t11
Внутреннее соединение StudentMaster на StudentMaster.StudentID = t11.StudentID


Вывод будет следующим : -

StudentID StudentName CourseNames
1 Гарри C#, MVC, Share Point
2 Алекс ASP.Net, Share Point, WCF
3 Sam MVC, WPF
4 Paul JQuery, SQL Server
5 Бен ASP.Net, С#

Herman&lt;T&gt;.Instance

Это что, домашнее задание?

Santosh kumar Pithani

Привет, где ты застрял ;чего ты ожидал ?

3 Ответов

Рейтинг:
8

Shilpa_g2

моя проблема

100 филиалов продают 3 предмета. мы должны найти 10 филиалов с максимальной продажей, где сумма продажи исключает один товар(2 предмета)

а также

общая продажа этих филиалов(все 3 позиции )


CHill60

Это не решение проблемы!

Рейтинг:
14

Shilpa_g2

решается с помощью следующего запроса

select * from
 (select * from
(select brcd, round(sum(outamt)/1000,0) amt from cis  where   assetcd !='IR00001'
group by brcd order by amt desc)  where    rownum <11)  a

inner join

(select brcd,round(sum(outamt)/1000,0) amt2  from cis  group by brcd) b

on a.brcd=b.brcd
order by amt desc
;



любой лучший способ сделать это.


CHill60

Это, по-видимому, сочетание решения с вопросом. Ваша проблема решена?

Santosh kumar Pithani

SQL сервер не может принять заказ по внутри без производной таблицы(вверху,в формате XML,смещение)
1."Выберите brcd, round(sum(outamt)/1000,0) amt из СНГ, где assetcd !='IR00001'
группа по brcd заказ по amt desc"

2. столбец"rownum" не задан внутри производной таблицы, тогда как его можно задать в качестве условия фильтра вне производной таблицы?

CHill60

Это вообще не работает. Неверный порядок следования, неправильный синтаксис, отсутствующие псевдонимы.
Используйте ссылку "улучшить вопрос", чтобы включить в свой вопрос некоторые примеры данных и некоторые ожидаемые результаты

Shilpa_g2

Я работаю на oracle, а не на sql server.

Рейтинг:
0

Santosh kumar Pithani

--I hope this solution may help you
select 
   A.brcd,
   round(sum(A.outamt)/1000,0) amt1,
   (
     select round(sum(B.outamt)/1000,0)   FROM cis AS B
        where  
           B.assetcd<>'IR00001' 
       AND B.rownum <11
       AND A.brcd=B.brcd
  ) AS Amt2  
from cis AS A  group by A.brcd order by amt1 DESC,Amt2 DESC