الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحويل الكيوري من access إلى sql server

بدأه m_ageeb في 25 نوفمبر 2012 · 7 رد · 972 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ارجو تحويل الاستعلام في هذا المثال باسم (quryx) إلى استعلام يعمل في قاعدة بيانات sql server

والاستعلام يعمل بـ دالة TRANSFORM

test.zip

تعلم فليس المرء يولد عالما ولا اخو علم كمن هو جاهلو

------------------------------------------------------------

~¤ô_ô¤~ AGEEB SOFT~¤ô_ô¤~

ageeb2000@hotmail.com

#2

السلام عليكم

هتعمل فيو تجيب السمشن NET ,SumInNET

1------ حقل الــ NET بسيط معادلته هتبقا زى ما هيا

2------ حقل الـ SumInNET هنحتاج حقلين عشان نطبق قاعده IF

1- حقل SUB_sum معادلته [bILL_D].[PRIce]*[bILL_D].[QTY] ونعمل ليه SUM

2- حقل SUB_sumB معادلته [bILL_D].[PRIce]*[bILL_D].[QTY ]

وبعد ذلك

SumInNET=IS NULL(SUB_sum;SUB_sumB وبعد ماتتأكد من القيم هتضيف الفيو دى للفيو الاساسيه وتوجه على الفيو اللى بتجيب القيم وهتشتغل معاك ان شاء الله

وفيه افكار كتير دى اللى جت فى بالى دلوقتى لما قريت سؤالك

#3

جزاك الله خيرا

ممكن تضيفوا لقاعدة البيانات تنزلها ككود SQL

تعلم فليس المرء يولد عالما ولا اخو علم كمن هو جاهلو

------------------------------------------------------------

~¤ô_ô¤~ AGEEB SOFT~¤ô_ô¤~

ageeb2000@hotmail.com

#4

السلام عليكم ...

  1. الــ SQL Server يدعم الــ PIVOT, كما الــ MS ACCESS , لكن أنت بحاجة لشخص يعرف طريقة التحويل .
  2. هذه محاولة مني :
    DECLARE @cols VARCHAR(2000)
    SELECT  @cols = STUFF(( SELECT DISTINCT
    	                    	'],[' + ltrim(name1)
    	                    	FROM	company
    	                    	ORDER BY '],[' + ltrim((name1))
    	                    	FOR XML PATH('')
    	                    	), 1, 2, '') + ']'
    print @cols;
    
    DECLARE @query NVARCHAR(4000)
    
    
    SET @query = N'SELECT *  FROM 
    (SELECT cust.code, cust.name1,company.name1 AS ComName ,  IsNull(Sum([BILL_D].[PRIce]*[BILL_D].[QTY]) , 0) AS NET
    				FROM company INNER JOIN (cust INNER JOIN ((bill INNER JOIN bill_d ON bill.Bill_no = bill_d.Bill_no) INNER JOIN class ON bill_d.class_no = class.class_no) ON cust.code = bill.code1) ON company.company_no = class.com_no
    				GROUP BY cust.code, cust.name1 , company.name1) P PIVOT (Sum(NET) FOR ComName in ('+@cols+'))AS PVT'
    
    exec(@query)

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#5

جزاك الله خير على المجهود ، لكنه لم يعلم حتى الآن

تعلم فليس المرء يولد عالما ولا اخو علم كمن هو جاهلو

------------------------------------------------------------

~¤ô_ô¤~ AGEEB SOFT~¤ô_ô¤~

ageeb2000@hotmail.com

#6

ما الخطء الذي يظهر عندك من كود الاخ حسام

#7
KARIMSOFT كتب:

ما الخطء الذي يظهر عندك من كود الاخ حسام

السلام عليكم ورحمة الله

Server: Msg 156, Level 15, State 1, Line 6
Incorrect syntax near the keyword 'FOR

'.

مع العلم ان قاعدة البيانات التي اعمل بها هي sql server 2000

تعلم فليس المرء يولد عالما ولا اخو علم كمن هو جاهلو

------------------------------------------------------------

~¤ô_ô¤~ AGEEB SOFT~¤ô_ô¤~

ageeb2000@hotmail.com

#8

SQL2000 لا يدعم PIVOT

مواضيع مشابهة