جمع کردن مقادیر مختلف یک جدول در یک ردیف جدول دیگر
سلام
من یک جدول دارم به صورت زیر:
Value DateTime ParameterID ID
3 1 2018-05-24 11:51:32.103 34.146
4 2 2018-05-24 11:51:32.103 23.138
5 1 2018-05-24 11:51:38.103 39.16
51 1 2018-05-26 08:20:15.670 54.302
52 2 2018-05-26 08:20:15.687 22.178
53 1 2018-05-26 08:20:20.603 58.594
54 2 2018-05-26 08:20:20.607 26.047
55 1 2018-05-26 08:20:25.617 55.696
56 2 2018-05-26 08:20:25.617 28.925
57 1 2018-05-26 08:20:30.620 47.332
58 2 2018-05-26 08:20:30.633 29.744
59 1 2018-05-26 08:20:35.627 40.589
60 2 2018-05-26 08:20:35.630 34.447
61 1 2018-05-26 08:20:40.637 43.543
62 2 2018-05-26 08:20:40.640 34.805
63 1 2018-05-26 08:20:45.643 42.328
می خواهم یک View یا Stored Procedure بسازم که در هر ردیف مقادیر زیر را برگردونه:
DateTime ValueOfParameter1 ValueOfParameter2
این را هم خودم نوشته ام اما مقادیر دما و رطوبت را توی همه ردیف ها تکراری میزنه!
SELECT DT,
(SELECT TOP (1) Value
FROM dbo.tblDataLog
WHERE (ParameterId = 1)) AS temprature,
(SELECT TOP (1) Value
FROM dbo.tblDataLog AS tblDataLog_2
WHERE (ParameterId = 2)) AS humidity
FROM dbo.tblDataLog AS tblDataLog_1
1 ضمیمه
نقل قول: جمع کردن مقادیر مختلف یک جدول در یک ردیف جدول دیگر
ضمیمه 148274
نتیجه اون کدی نوشتم این شد!!
منتظر جواب شما هستم
1 ضمیمه
نقل قول: جمع کردن مقادیر مختلف یک جدول در یک ردیف جدول دیگر
ضمیمه 148275
این هم جدول اصلی من به اسم tblDatalog
نقل قول: جمع کردن مقادیر مختلف یک جدول در یک ردیف جدول دیگر
اگر این کار شدنی نیست بهم بگید تا کلا معماری دیتابیسم را تغییر بدم
نقل قول: جمع کردن مقادیر مختلف یک جدول در یک ردیف جدول دیگر
طبق چه منطقی مقادیر بایست سلکت بشن؟
نقل قول: جمع کردن مقادیر مختلف یک جدول در یک ردیف جدول دیگر
نقل قول:
نوشته شده توسط
Mahmoud.Afrad
طبق چه منطقی مقادیر بایست سلکت بشن؟
بر اساس زمان. باید فیلدهای مربوط به یک زمان واحد روی یک سطر قرار بگیرند. موقع insert کردن دما و رطوبت هم زمان insert می شود. یعنی هر زمان روی یک ردیف تا بتوانم مثلا در این View جداگانه با استفاده از دستور SELECT صد ردیف آخر یا رکوردهای بین دو زمان مشخص را نمایش بدهم
نقل قول: جمع کردن مقادیر مختلف یک جدول در یک ردیف جدول دیگر
میتونید جدول را با خودش join کنید و دو مقدار را در یک سطر داشته باشید. برای بدست آوردن یک سطر از هر تاریخ از Row_Number استفاده کنید.
نقل قول: جمع کردن مقادیر مختلف یک جدول در یک ردیف جدول دیگر
نقل قول:
نوشته شده توسط
Mahmoud.Afrad
میتونید جدول را با خودش join کنید و دو مقدار را در یک سطر داشته باشید. برای بدست آوردن یک سطر از هر تاریخ از Row_Number استفاده کنید.
من با row_number تا حالا کار نکرده ام! می شه بیشتر توضیح بدید؟
نقل قول: جمع کردن مقادیر مختلف یک جدول در یک ردیف جدول دیگر
نقل قول:
نوشته شده توسط
masoode
من با row_number تا حالا کار نکرده ام! می شه بیشتر توضیح بدید؟
https://docs.microsoft.com/en-us/sql...r-transact-sql
https://stackoverflow.com/a/3800572
نقل قول: جمع کردن مقادیر مختلف یک جدول در یک ردیف جدول دیگر
خیلی ممنون از پاسختون
اول با row_number این کار را انجام دادم. بعد با ساده کردن Query به یک چیز خیلی مختصر و مفید رسیدم که نیاز به row_number هم نداشت:
SELECT dbo.tblDataLog.DT, dbo.tblDataLog.Value AS Teprature, tblDataLog_1.Value AS Humidity
FROM dbo.tblDataLog AS tblDataLog_1 INNER JOIN
dbo.tblDataLog ON tblDataLog_1.DT = dbo.tblDataLog.DT
WHERE (dbo.tblDataLog.ParameterId = 1) AND (tblDataLog_1.ParameterId = 2)