0

2 つのデータセットを UNION するレポートを作成しようとしています。(1)日付範囲内の特定の顧客の一連の注文が必要であり、(ヘッダーと)(2)注文と注文の間の時間間隔の平均に続く配送方法でそれをUNIONします送信済。

以下のスクリーンショットは、SQL Server でクエリが完全に機能することを示しています。しかし、これとまったく同じクエリを Visual Studio 2008 で実行してレポートを作成すると、平均ターンアラウンド タイムの実際の値ここに画像の説明を入力が空になります。

私が知る限り、SQL Server では、指定したパラメーターに対してクエリが完全に機能します。レポートで平均ターンアラウンド タイムが常に空白になっている理由がわかりません。

私が実行しているクエリは次のとおりです。

DECLARE @turnaroundInfo TABLE
(
    [Owner Reference] VARCHAR(48),
    [Project] VARCHAR(48),
    [Carrier Type] VARCHAR(48),
    [Created Date] DATETIME,
    [Shipped Date] DATETIME,
    [Turnaround Time (hours)] INT
)
INSERT INTO @turnaroundInfo
SELECT orders.ownerReference AS [Owner Reference], p.name AS [Project], types.name AS [Carrier Type], orders.createdSysDateTime AS [Created Date], shipments.shippedDate AS [Shipped Date],  DATEDIFF(HOUR,             orders.createdSysDateTime, shipments.shippedDate) AS [Turnaround Time (hours)]
FROM datex_footprint.Orders orders
    INNER JOIN datex_footprint.Projects p ON orders.projectId = p.id
    INNER JOIN datex_footprint.CarrierServiceTypes types ON orders.preferredCarrierServiceTypeId = types.id
    INNER JOIN datex_footprint.OrderLines lines ON orders.id = lines.orderId
    INNER JOIN datex_footprint.Shipments shipments ON lines.shipmentId = shipments.id
WHERE p.name IN (@project)  AND types.name IN(@carrier)

-- Get only the type and date-ranged turnaround info we want
DECLARE @orders TABLE
(
    [Owner Reference] VARCHAR(48),
    [Project] VARCHAR(48),
    [Carrier Type] VARCHAR(48),
    [Created Date] DATETIME,
    [Shipped Date] DATETIME,
    [Turnaround Time (hours)] INT
)
INSERT INTO @orders
SELECT  *
FROM @turnaroundInfo
WHERE [Turnaround Time (hours)] >= 0 AND [Created Date] BETWEEN @startDate AND @endDate
ORDER BY [Turnaround Time (hours)], [Carrier Type] ;


-- UNION the relevant turnaround infor with headers
SELECT * FROM @orders o /*  All the orders in the date range for this project and the selected carrier(s) */
UNION ALL
SELECT 'Carrier' AS [Carrier Type], 'Avg Turnaround Time' AS [Average Turnaround], NULL AS Column3, NULL AS Column4, NULL AS Colummn5, NULL AS Column6
UNION ALL
SELECT o.[Carrier Type], CAST(AVG(o.[Turnaround Time (hours)]) AS NVARCHAR(24)) AS [Average Turnaround], NULL AS Column3, NULL AS Column4, NULL AS Colummn5, NULL AS Column6
FROM @orders o
GROUP BY o.[Carrier Type];

誰かが私が見逃しているものを知っているか見ていますか? どんな助けでも大歓迎です!

4

2 に答える 2

0

私は自分の間違いが何であるかを理解しました。値 24 に関する列と、ヘッダーと 24 値列のサイズが異なっていました。SQL Server では問題ないように見えましたが、Visual Studio ではサイズの違いが見られ、実際には列全体が表示されなくなりました。

平均値列を VARCHAR(48) に調整した後、これはその上の列のサイズであり、再び正しく表示されました。

于 2012-10-11T15:53:53.113 に答える
0

空白ではありません。期待した列にない可能性があります。スクリーンショットで値「24」を確認できます。

于 2012-10-10T15:58:50.497 に答える