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

Откуда:
Сообщений: 15
Уважаемые программисты SQL.

2 таблицы: SoldItems & Cash


пишу


SELECT ItemBuyer,SUM(ItemPrice) as Debt FROM SoldItems GROUP BY ItemBuyer
получаю результат.

пишу также запрос для другой таблицы

SELECT CashPartner,SUM(CashAmount) as Payed FROM Cash GROUP BY CashPartner
тоже получаю результат.

хочу результат такой:
*SoldItems.ItemBuyer* *SoldItems.Debt* *Cash.Payed*
5 июл 11, 13:57    [10924622]     Ответить | Цитировать Сообщить модератору
 Re: запрос по объединению резултатов в одном результате  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
а как
SoldItems.ItemBuyer соотносяться с SoldItems.Debt ?
5 июл 11, 14:02    [10924682]     Ответить | Цитировать Сообщить модератору
 Re: запрос по объединению резултатов в одном результате  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Maxx
а как
SoldItems.ItemBuyer соотносяться с SoldItems.Debt ?
плин есно с Cash.CashPartner
5 июл 11, 14:03    [10924696]     Ответить | Цитировать Сообщить модератору
 Re: запрос по объединению резултатов в одном результате  [new]
AlexeyVD
Member

Откуда:
Сообщений: 473
Покажите структуры таблиц и имеющиеся связи.
5 июл 11, 14:20    [10924884]     Ответить | Цитировать Сообщить модератору
 Re: запрос по объединению резултатов в одном результате  [new]
ayazahmadov
Member

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

USE [Fornetty]
GO
/****** Object: Table [dbo].[SoldItems] Script Date: 07/05/2011 15:49:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[SoldItems](
[Item_Id] [int] NULL,
[ItemCode] [int] NULL,
[ItemInformation] [nvarchar](50) COLLATE Cyrillic_General_CI_AS NULL,
[ItemAccDoc] [int] NULL,
[ItemPrice] [float] NULL,
[ItemSalesDate] [datetime] NULL,
[ItemBuyer] [nvarchar](50) COLLATE Cyrillic_General_CI_AS NULL,
[ItemPriceForPartners] [float] NULL CONSTRAINT [DF_SoldItems_ItemPriceForPartners] DEFAULT ('Sandnes'),
[ItemPriceForRealization] [float] NULL,
[ItemSession] [int] NOT NULL,
[ItemDiscount] [varchar](4) COLLATE Cyrillic_General_CI_AS NULL,
[ItemIsCredit] [bit] NULL
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF

--------------

USE [Fornetty]
GO
/****** Object: Table [dbo].[Cash] Script Date: 07/05/2011 15:50:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Cash](
[CashId] [int] IDENTITY(1,1) NOT NULL,
[CashPartner] [nvarchar](50) COLLATE Cyrillic_General_CI_AS NULL,
[CashBeneficiary] [nvarchar](50) COLLATE Cyrillic_General_CI_AS NULL,
[CashAmount] [float] NULL,
[CashDate] [datetime] NULL,
[CashOrder] [int] NULL,
[CashType] [bit] NULL
) ON [PRIMARY]
5 июл 11, 14:50    [10925181]     Ответить | Цитировать Сообщить модератору
 Re: запрос по объединению резултатов в одном результате  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
ayazahmadov,

связки не видно...
Означает ли ваш вопрос, что связать можно по ItemBuyer=CashPartner?
5 июл 11, 22:31    [10928230]     Ответить | Цитировать Сообщить модератору
 Re: запрос по объединению резултатов в одном результате  [new]
ayazahmadov
Member

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

да... конечно...
6 июл 11, 18:11    [10934593]     Ответить | Цитировать Сообщить модератору
 Re: запрос по объединению резултатов в одном результате  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
ayazahmadov
Makar4ik,

да... конечно...
вот вы и ответили на свой вопрос. )
7 июл 11, 00:00    [10935697]     Ответить | Цитировать Сообщить модератору
 Re: запрос по объединению резултатов в одном результате  [new]
ayazahmadov
Member

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

стараюсь писать запрос вот так

select c.CashPartner,s.ItemBuyer,SUM(s.ItemPrice),SUM(c.CashAmount) from Cash
cross join Cash c, SoldItems s
where c.CashPartner = s.ItemBuyer
GROUP BY c.CashPartner,s.ItemBuyer


но данные SUM показывает не реальные. Какие-то миллионы... Как исправить?
7 июл 11, 09:38    [10936407]     Ответить | Цитировать Сообщить модератору
 Re: запрос по объединению резултатов в одном результате  [new]
Anddros
Member

Откуда:
Сообщений: 1077
ayazahmadov
Как исправить?
Например, так:
select ItemBuyer, SUM(Debt) as Debt, SUM(Payed) as Payed
from (
SELECT ItemBuyer, SUM(ItemPrice) as Debt, 0 Payed FROM SoldItems GROUP BY ItemBuyer
union all
SELECT CashPartner,0 Debt, SUM(CashAmount) as Payed FROM Cash GROUP BY CashPartner
)t
group by ItemBuyer
или так:
select ItemBuyer, SUM(Debt) as Debt, SUM(Payed) as Payed
from (
SELECT ItemBuyer, ItemPrice, 0 Payed FROM SoldItems
union all
SELECT CashPartner, 0 Debt, CashAmount as Payed FROM Cash
)t
group by ItemBuyer

не проверял...
7 июл 11, 10:33    [10936810]     Ответить | Цитировать Сообщить модератору
 Re: запрос по объединению резултатов в одном результате  [new]
ayazahmadov
Member

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

огромное спасибо Вам, Anddros...
7 июл 11, 11:36    [10937389]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить