delphi4arab منتديات دلفي للعرب
استعلام sql للحصول على تاريخ الاول من كل شهر أثناء سنة - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : استعلام sql للحصول على تاريخ الاول من كل شهر أثناء سنة (/showthread.php?tid=3360)

الصفحات: 1 2


استعلام sql للحصول على تاريخ الاول من كل شهر أثناء سنة - مراد23 - 19-08-2011

السلام عليكم ورحمة الله وبراكته وصحا رمضانكم

لديا استعلام sql للحصول على تاريخ الاول من كل شهر أثناء سنة

من خلال جدول الكمية Quantité والدي يتكون من الحقل N_intrQua مفتاح أساسي للجدول
و الحقل رقم الشاحنة N_Camion و حقل الكمية Quant و حقل التاريخ Dateq

أرغب القيام باستعلام لمعرفة الشاحنات التي استهلكت كمية من الوقود خلال الاول من كل شهر
أثناء السنة أي التاريخ محصور بين 01/01/2011 إلى غاي 31/12/2011
وكدلك خلال شهر معين
ملاحظة بالنسبة لشهر لا أرغب حصر الشهر بين تاريخين أول الشهر وأخره وأنما من خلال تحديد رقم الشهر فقظ
هده محاولتي لكن لا أحصل على نتائج ويطهر ميساج يخبرني باختلاف في الأنواع
المحاولة
كود :
Query1.active.=True Query1.close; Query1.clear; Query1.Sql.Add('Select *'); Query1.Sql.Add('Where (Dateq Between :D1 and :D2)'); Query1.Sql.Add(' (Dateq Like :D3)'); Query1.Params.Paramby.('D1').asDate:=DateTimePiker1.Date; Query1.Params.Paramby.('D2').asDate:=DateTimePiker.Date2; Query1.Params.Paramby.('D3').asDate:=('01--------'); Query1.Active:=true;


وبارك الله فيكم ورعاكم وتقبل صلاتكم وقيامكم.


استعلام sql للحصول على تاريخ الاول من كل شهر أثناء سنة - لؤي - 20-08-2011

حاول بهذا الإستعلام :
كود :
Query1.active.=True Query1.close; Query1.clear; Query1.Sql.Add('Select *'); [color=Red] SQL.Add('FROM table_name');[/color]// أين هو إسم الجدول Query1.Sql.Add('Where (Dateq Between :D1 and :D2)'); Query1.Sql.Add(' (Dateq Like :D3)'); [color=Red] Parameters.ParamByName('D1').DataType:=ftDate;[/color] Query1.Params.Paramby.('D1')[color=Red].Value[/color]:=DateTimePiker1.Date; Parameters.ParamByName('D2').DataType:=ftDate; Query1.Params.Paramby.('D2').[color=Red]Value[/color]:=[color=Red]DateTimePiker2.Date;[/color] [color=Red] Parameters.ParamByName('D3').DataType:=ftDate;[/color] Query1.Params.Paramby.('D3')[color=Red].Value[/color]:=('01--------'); [color=Red] Query1.open;[/color] Query1.First;



استعلام sql للحصول على تاريخ الاول من كل شهر أثناء سنة - مراد23 - 27-08-2011

السلام عليكم ورحمة الله
عذرا عن تأخر ردي .
لقد استخدمت الكود الذي أرفقته لكن يعطيني نفس النتيجة.
رسالة مفادها أختلاف في المتغيرات.
لذلك أرفقت مثال يمكنك التعديل عليه ومعرفة مكان الخطأ
ملاحظة الاستعلام في المثال يعمل دون أخطاءعندما يكون محصور بين
بداية التاريخ ونهاية التاريخ لكن عند مسح الشرطتين // عن التعليمتين.
كود :
//Query1.SQL.Add('and DateQ like :D3'); //Query1.Params.ParamByName('D3').AsString:='-1--------';
تظهر رسالة الخطأ
ملاحظة أود الحصول عن تواريخ الاول من كل شهر من خلال المدة المحصور بين
بداية التاريخ ونهاية التاريخ.
المثال المرفق.

.rar   Copie_BD.rar (الحجم : 3.27 ك ب / التحميلات : 28)


استعلام sql للحصول على تاريخ الاول من كل شهر أثناء سنة - لؤي - 29-08-2011

أخي الوظيفة Like لا تشتغل مع الأعمدة ذات الخاصية Date جرب بالخاصية String


استعلام sql للحصول على تاريخ الاول من كل شهر أثناء سنة - لؤي - 11-09-2011

أرفق لك إ ستعلام مجرب ويتماشى مع تطلعك حاول فقط إدراجه في Query


كود :
Select TO_CHAR (COLONNE1,'DD') T From BROADCAST.STATISTICS WHERE COLONNE1 BETWEEN TO_DATE('12/05/2011','dd/mm/yyyy') AND TO_DATE('08/09/2011','dd/mm/yyyy') AND TO_CHAR (COLONNE1,'DD')='01'



استعلام sql للحصول على تاريخ الاول من كل شهر أثناء سنة - tempuser - 10-12-2011

عي حالة استخدام آكسيس أو مايكروسفت اس كيو ال سيرفر
كود :
Select * from Quantity where Day(Dateq)=1

الكود السابق يقوم باسترجاع السجلات التي تاريخها يساوي اليوم الاول للشهر لكل شهر بدون تحدي اي فترة

اما في حالة استخدامك لانظمة قواد بيانات اخرى فيجب عليك البحث عن الدالة المناسبة وفي حالة عدم وجود دالة تؤدي نفس الغرض يتوجب حلها بالحيلة اي استخدام الطرق البدائية مثل تفكيك التاريخ الى قطع واستخراج اليوم منه


استعلام sql للحصول على تاريخ الاول من كل شهر أثناء سنة - لؤي - 25-12-2011

louay كتب :
كود :
Select TO_CHAR (COLONNE1,'DD') T From BROADCAST.STATISTICS WHERE COLONNE1 BETWEEN TO_DATE('12/05/2011','dd/mm/yyyy') AND TO_DATE('08/09/2011','dd/mm/yyyy') AND TO_CHAR (COLONNE1,'DD')='01'

هذا الكود خاص بما أراده الأخ الحصول عليه وهو اليوم الأول من كل شهر بما أنه الخاصية LIKE لا تشتغل مع النوع DATE إستعملت TO_CHAR وهي في أوراكل تقوم بتحويل الرقم أو اليوم إلى نص و الخاصية DD أخذ رقم من شهر (من 1 إلى 31)
Select TO_CHAR (COLONNE1,'DD') تحديد رقم من شهر بحيث COLONNE1 من نوع يوم
T يوضع الناتج في حقل إسمه T

TO_DATE('12/05/2011','dd/mm/yyyy')
AND TO_DATE('08/09/2011','dd/mm/yyyy') الخاصية TO_DATE تقوم بتحويل النص إلى يوم

TO_CHAR (COLONNE1,'DD')='01' هنا أخذ من الحقل COLONNE1 يوم من الشهر يساوي 01

لمزيد حول TO_CHAR وTO_DATE إليك الروابط التالية:

TO_CHARو
TO_DATE


استعلام sql للحصول على تاريخ الاول من كل شهر أثناء سنة - salem - 30-12-2011

شكرا أخي لؤى على التوضيح ولكن هل يشتغل هذا الكود في بيئة delphi7 أم في أوراكل فقط
إعذرني فأنا لم أستطيع إستعمال هذا الكود في sql الموجودة في delphi7
بسط لي الفكرة إذا كان يمكن إستعمال هذا الكود مع delphi7
وألف شكرا لك ولكل المبدعين مثلك


استعلام sql للحصول على تاريخ الاول من كل شهر أثناء سنة - لؤي - 05-01-2012

salem كتب :هل يشتغل هذا الكود في بيئة delphi7 أم في أوراكل فقط

نعم يشتغل حاول تعلم كيفية ربط دلفي بأوراكل ثم إدراج إستعلامات أوراكل من بيئة دلفي

هذا ما طلبت لكن لم أجربه عندي مشكلة إتصال Smile:
كود :
with adoquery1 do begin Close; SQL.Clear; SQL.Add('Select TO_CHAR (COLONNE1,'DD')'); SQL.Add(' BROADCAST.STATISTICS'); SQL.Add('where COLONNE1 BETWEEN '); SQL.Add(TO_DATE('d1','dd/mm/yyyy') AND TO_DATE('d2','dd/mm/yyyy') AND TO_CHAR(COLONNE1,'DD')='25''); Parameters.ParamByName('d1').DataType:=ftDate; Parameters.ParamByName('d1').Value:=DateTimePicker1.Date; Parameters.ParamByName('d2').DataType:=ftDate; Parameters.ParamByName('d2').Value:=DateTimePicker2.Date; open;



استعلام sql للحصول على تاريخ الاول من كل شهر أثناء سنة - tempuser - 11-01-2012

اذا مازلت هنا وتريد الحل وعلى فرض ان الحقل Dateq من نوع تاريخ

كود :
SELECT * FROM Quantite WHERE (Dateq between :D1 and :D2) and Day(Dateq)=1
الاستعلام السابق يعيد لك كل السجلات لليوم الاول من كل شهر خلال الفترةبين تاريخين تحددهما انت