Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Для тех у кого под рукой sql server2008  [new]
Goodday
Guest
Добрый день. не могли бы вы мне помочь. Пытаюсь изучить sql reporting serv . Нашел ролик http://www.techdays.ru/videos/1354.html
соответствующий. Там все очень понятно. Но тот код что использует автор у меня не работает. То есть сама выборка данных не делается. Код можно посмотреть в ролике на 13 минуте в самом начале. Дело в том что очень хочется попробовать сделать все что делает автор на этих данных а они не выбираются. Прошу протестировать этот код или подправить если возможно
Вот код

use AdventureWorks2008
select pc.name as productcategory,
ps.name as subcategory,
DATEPART(yy, sh.orderdate) as orderyear,
'q' + DATEPART(qq, sh.orderdate) as orderqtr,
sum(sd.unitprice + sd.orderqty) as salesamount, sales.salesterritory.[name] as territorry,
Sales.salesterritory.[group] as region

from Production.ProductSubcategory as ps join
sales.salesorderheader as sh join
sales.salesorderdetail as sd on sh.salesorderId = sd.salesorderid join
production.product as p on sd.productid = p.productid on ps.productsubcategoryid = ps.productcategoryid join
sales.salesterritory on sh.territoryid = sales.salesterritory.territoryid
where
(sh.orderdate between '1/1/2003' and '12/31/2004')
group by
datepart(yy, sh.orderdate),
pc.name,
ps.name,
'Q'+ datename(qq, sh.orderdate),
ps.productsubcategoryid, sales.salesterritory.name,
sales.salesTerritory.[group]
11 сен 11, 11:46    [11260076]     Ответить | Цитировать Сообщить модератору
 Re: Для тех у кого под рукой sql server2008  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Хрустальный шар сказал (т.к. учебную базу ставить лень):
USE AdventureWorks2008
SELECT  pc.name AS productcategory
       ,ps.name AS subcategory
       ,DATEPART(yy,sh.orderdate) AS orderyear
       ,'q'+DATEPART(qq,sh.orderdate) AS orderqtr
       ,SUM(sd.unitprice+sd.orderqty) AS salesamount
       ,sales.salesterritory.[name] AS territorry
       ,Sales.salesterritory.[group] AS region
FROM    Production.ProductSubcategory AS ps
JOIN    sales.salesorderheader AS sh -- во время отладки можно все JOIN поменять на LEFT JOIN
JOIN    sales.salesorderdetail AS sd ON sh.salesorderId=sd.salesorderid
JOIN    production.product AS p ON sd.productid=p.productid ON ps.productsubcategoryid=ps.productcategoryid
JOIN    sales.salesterritory ON sh.territoryid=sales.salesterritory.territoryid
WHERE   (sh.orderdate BETWEEN '20030101' AND '20041231') -- в качестве отладки можно закомментировать эту строку
GROUP BY pc.name
       ,ps.name
       ,DATEPART(yy,sh.orderdate)
       ,'q'+DATEPART(qq,sh.orderdate)
       ,ps.productsubcategoryid
       ,sales.salesterritory.name
       ,sales.salesTerritory.[group]
11 сен 11, 13:11    [11260203]     Ответить | Цитировать Сообщить модератору
 Re: Для тех у кого под рукой sql server2008  [new]
3264
Guest
kDnZP, То же самое. Как ни странно. База та что такое - не могу понять?

Сообщение 4104, уровень 16, состояние 1, строка 16
Не удалось привязать составной идентификатор "pc.name".
Сообщение 4104, уровень 16, состояние 1, строка 3
Не удалось привязать составной идентификатор "pc.name".
11 сен 11, 13:19    [11260219]     Ответить | Цитировать Сообщить модератору
 Re: Для тех у кого под рукой sql server2008  [new]
Goodday
Guest
Может можно что -нибудь придумать с этими столбцами.
11 сен 11, 13:21    [11260222]     Ответить | Цитировать Сообщить модератору
 Re: Для тех у кого под рукой sql server2008  [new]
Коляныч
Member

Откуда:
Сообщений: 279
В списке джойнов не вижу ProductionCategory AS pc
11 сен 11, 13:33    [11260246]     Ответить | Цитировать Сообщить модератору
 Re: Для тех у кого под рукой sql server2008  [new]
Goodday
Guest
kDnZP,

Я беру делаю так - выбираю все из этого множества таблиц - но в упор не вижу этих столбов (pc.name AS productcategory
,ps.name AS subcategory
) А базу сегодня скачал заново , обновил. filestrim поставил. ?

USE AdventureWorks2008
SELECT *
FROM Production.ProductSubcategory AS ps
JOIN sales.salesorderheader AS sh -- во время отладки можно все JOIN поменять на LEFT JOIN
JOIN sales.salesorderdetail AS sd ON sh.salesorderId=sd.salesorderid
JOIN production.product AS p ON sd.productid=p.productid ON ps.productsubcategoryid=ps.productcategoryid
JOIN sales.salesterritory ON sh.territoryid=sales.salesterritory.territoryid
11 сен 11, 13:33    [11260247]     Ответить | Цитировать Сообщить модератору
 Re: Для тех у кого под рукой sql server2008  [new]
Goodday
Guest
Коляныч, А вы можете его туда приджойнить?
11 сен 11, 13:35    [11260255]     Ответить | Цитировать Сообщить модератору
 Re: Для тех у кого под рукой sql server2008  [new]
Коляныч
Member

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

Ну наверное по логике вещей как-то так
FROM	Production.ProductSubcategory AS ps
JOIN	Production.ProductCategory AS pc ON pc.ProductCategoryID = ps.ProductCategoryID
JOIN	.... -- остальные таблицы
11 сен 11, 13:47    [11260273]     Ответить | Цитировать Сообщить модератору
 Re: Для тех у кого под рукой sql server2008  [new]
Goodday
Guest
Коляныч,

да спасибо. так

Production.ProductSubcategory AS ps join
sales.salesorderheader AS sh join
sales.salesorderdetail AS sd ON sh.salesorderId=sd.salesorderid join
production.product AS p ON sd.productid=p.productid ON
ps.productsubcategoryid=
p.productsubcategoryid join
production.productcategory as pc on ps.productcategoryid = pc.productcategoryid join
sales.salesterritory on sh.territoryid = sales.salesterritory.territoryid
11 сен 11, 13:51    [11260281]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить