المشاركات : 4
المواضيع 2
:
: 0
الإنتساب : Sep 2010
السلام عليكم ورحمة الله وبراكته وصحا رمضانكم
لديا استعلام 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;
وبارك الله فيكم ورعاكم وتقبل صلاتكم وقيامكم.
المشاركات : 628
المواضيع 72
:
: 211
الإنتساب : Jun 2010
حاول بهذا الإستعلام :
كود :
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;
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
المشاركات : 4
المواضيع 2
:
: 0
الإنتساب : Sep 2010
السلام عليكم ورحمة الله
عذرا عن تأخر ردي .
لقد استخدمت الكود الذي أرفقته لكن يعطيني نفس النتيجة.
رسالة مفادها أختلاف في المتغيرات.
لذلك أرفقت مثال يمكنك التعديل عليه ومعرفة مكان الخطأ
ملاحظة الاستعلام في المثال يعمل دون أخطاءعندما يكون محصور بين
بداية التاريخ ونهاية التاريخ لكن عند مسح الشرطتين // عن التعليمتين.
كود :
//Query1.SQL.Add('and DateQ like :D3');
//Query1.Params.ParamByName('D3').AsString:='-1--------';
تظهر رسالة الخطأ
ملاحظة أود الحصول عن تواريخ الاول من كل شهر من خلال المدة المحصور بين
بداية التاريخ ونهاية التاريخ.
المثال المرفق.
Copie_BD.rar (الحجم : 3.27 ك ب / التحميلات : 28)
المشاركات : 628
المواضيع 72
:
: 211
الإنتساب : Jun 2010
أخي الوظيفة Like لا تشتغل مع الأعمدة ذات الخاصية Date جرب بالخاصية String
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
المشاركات : 628
المواضيع 72
:
: 211
الإنتساب : Jun 2010
أرفق لك إ ستعلام مجرب ويتماشى مع تطلعك حاول فقط إدراجه في 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'
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
المشاركات : 27
المواضيع 0
:
: 0
الإنتساب : Mar 2009
عي حالة استخدام آكسيس أو مايكروسفت اس كيو ال سيرفر
كود :
Select * from Quantity
where Day(Dateq)=1
الكود السابق يقوم باسترجاع السجلات التي تاريخها يساوي اليوم الاول للشهر لكل شهر بدون تحدي اي فترة
اما في حالة استخدامك لانظمة قواد بيانات اخرى فيجب عليك البحث عن الدالة المناسبة وفي حالة عدم وجود دالة تؤدي نفس الغرض يتوجب حلها بالحيلة اي استخدام الطرق البدائية مثل تفكيك التاريخ الى قطع واستخراج اليوم منه
المشاركات : 628
المواضيع 72
:
: 211
الإنتساب : Jun 2010
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
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
المشاركات : 29
المواضيع 9
:
: 2
الإنتساب : Apr 2008
شكرا أخي لؤى على التوضيح ولكن هل يشتغل هذا الكود في بيئة delphi7 أم في أوراكل فقط
إعذرني فأنا لم أستطيع إستعمال هذا الكود في sql الموجودة في delphi7
بسط لي الفكرة إذا كان يمكن إستعمال هذا الكود مع delphi7
وألف شكرا لك ولكل المبدعين مثلك
المشاركات : 628
المواضيع 72
:
: 211
الإنتساب : Jun 2010
salem كتب :هل يشتغل هذا الكود في بيئة delphi7 أم في أوراكل فقط
نعم يشتغل حاول تعلم كيفية ربط دلفي بأوراكل ثم إدراج إستعلامات أوراكل من بيئة دلفي
هذا ما طلبت لكن لم أجربه عندي مشكلة إتصال

:
كود :
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;
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
المشاركات : 27
المواضيع 0
:
: 0
الإنتساب : Mar 2009
اذا مازلت هنا وتريد الحل وعلى فرض ان الحقل Dateq من نوع تاريخ
كود :
SELECT *
FROM Quantite
WHERE (Dateq between :D1 and :D2) and Day(Dateq)=1
الاستعلام السابق يعيد لك كل السجلات لليوم الاول من كل شهر خلال الفترةبين تاريخين تحددهما انت