英語はあまりよくありません。SQL Serverでテーブル値関数を使用する
私のT-SQL機能:
create function sumofOrder(@thang int, @nam int)
returns table
as
return
SELECT
Sales.SalesOrderDetail.SalesOrderID,
Sales.SalesOrderHeader.OrderDate,
SUM(Sales.SalesOrderDetail.OrderQty * Sales.SalesOrderDetail.UnitPrice) AS SubTotal
FROM
Sales.SalesOrderDetail
INNER JOIN
Sales.SalesOrderHeader ON Sales.SalesOrderDetail.SalesOrderID = Sales.SalesOrderHeader.SalesOrderID
GROUP BY
Sales.SalesOrderDetail.SalesOrderID,
Sales.SalesOrderHeader.OrderDate
HAVING
(SUM(Sales.SalesOrderDetail.OrderQty * Sales.SalesOrderDetail.UnitPrice) > 70000)
AND YEAR(Sales.SalesOrderHeader.OrderDate) = @nam
AND MONTH(Sales.SalesOrderHeader.OrderDate) = @thang
そして今、私は@thangと@namはなく任意の特定の値によってフィルタリングのためにそれを使用したいです。スカラー関数の
例:
select
[DepartmentID], [Name], dbo.cau1([DepartmentID]) as 'tongnhanvien'
from
[HumanResources].[Department]
はあなたにみんなありがとう! PS:私の考えは次のとおりです。select * from [dbo].[sumofOrder](MONTH(Sales.SalesOrderHeader.OrderDate), YEAR(Sales.SalesOrderHeader.OrderDate))
問題は何ですか? – Amit
今質問が明確ではありません。あなたの英語のせいではなく、何が問題なのか、あなたの関数やクエリで何をしたいのかについて言及していないからです。ちょうど情報がありません。 –
この目的のために関数からデータを取得するには、 'CROSS APPLY'([documentation](https://technet.microsoft.com/en-us/library/ms175156(v = sql.105).aspx))を使用しますしかし、作成されたのと同じパラメーターで関数を呼び出す必要があります。このように、関数にパラメータとして '@ DepartmentId'を追加する必要があります。クロス適用する場合は、3つのパラメータすべてを関数に渡す必要があります。 –