PDA

View Full Version : مشکل در استفاده از group by در sql server



sabagood
دوشنبه 04 اردیبهشت 1391, 23:19 عصر
با سلام
می خواستم بپرسم فرض کنید در یک کوئری از نوع select من می خام فیلدهای a,b,c در خروجی نمایش بدم و در این کوئری قصد دارم بر حسبa ,عمل Group by را انجام بدم ...
ولی خطا داره و باید تمام فیلدهای جلوی select رو مقابل Group by نیز بیارم ولی نیمخام بر حسب همه فیلدها Group by انجام بشه و فقط حسبa میخام
میشه راهنمایی کنید ؟

حمیدرضاصادقیان
سه شنبه 05 اردیبهشت 1391, 09:42 صبح
سلام
کوئری که نوشتید رو اینجا قراربدید.

tazekaram
سه شنبه 05 اردیبهشت 1391, 09:57 صبح
منم همين مشكل رو دارم.اينم كوئري من
SELECT dbo.Identities.GhNumber, dbo.PaymentDesc.PayID, dbo.PaymentDesc.JobberID, dbo.PaymentDesc.StateNo, dbo.PaymentDesc.FinalTempore,
dbo.PaymentDesc.TotalState, dbo.PaymentDesc.BeforeState, dbo.PaymentDesc.NewState, dbo.PaymentDesc.PartialPayment,
dbo.PaymentDesc.InsurancePrice, dbo.PaymentDesc.TaskPercent, dbo.PaymentDesc.DecreasePrepaid, dbo.PaymentDesc.TotalPrepaid,
dbo.PaymentDesc.DraftNo, dbo.PaymentDesc.DraftDate, dbo.PaymentDesc.DeraftPrice, dbo.PaymentDesc.DeSum, dbo.PaymentDesc.Payment,
dbo.PaymentDesc.Planner, dbo.PaymentDesc.Reciever, dbo.PaymentDesc.PayType, dbo.PaymentDesc.PayTax, dbo.Identities.ProjectName,
dbo.Identities.DesignName, dbo.Identities.JobberName, dbo.Identities.FirstTime, dbo.Identities.FirstPrice, dbo.PaymentDesc.GhID
FROM dbo.PaymentDesc INNER JOIN
dbo.Identities ON dbo.PaymentDesc.GhID = dbo.Identities.GhID
GROUP BY dbo.Identities.GhNumber

حمیدرضاصادقیان
سه شنبه 05 اردیبهشت 1391, 12:37 عصر
سلام
شما میتونید از Derived Table یا از CTE استفاده کنید.
من یک مثال از Derived Table برای شما قرار میدم که میتونید با گسترش اون به نتیجه دلخواه خودتون برسید.

SELECT fs.Field1,fs.Field2,fs1.SumField3,fs.Date1
FROM Table1 fs
JOIN(SELECT Field1,SUM(Field3) AS Sumfield3
FROM Table1
GROUP BY Field1) AS fs1
ON fs1.Field1=fs.Field1