PDA

View Full Version : مقایسه دو فیلد(رشته و bigint)



ly.comeng
چهارشنبه 29 مرداد 1393, 15:19 عصر
سلام دوستان
من دو جدول دارم که در یکی تلفن مقصد و در یکی کد کشور وجود دارد
تلفن call از نوع nvarchar کد کشور code از نوع bigint هست که در دو جدول مجزا هستند
حالا میخوام رکوردهایی رو که تلفن مقصدشون با کد مورد نظرم شروع میشه رو در بیارم که مبلغ تماس رو محاسبه کنم
نکته ای که داره اینه که مثلا برای یک کشور کدهای مختلف وجود داره مثلا برای شماره نمونه 31685735067 دو حالت پیش میاد :
چون در جدول کد کشور یه مبلغ برای کد 31 دارم و یک مبلغ برای کد 3168 که برای این مقصد باید کد 3168 به حساب بیاد اما نمیدونم چهطوری کد رو بنویسم؟!!
من الان همچین چیزی نوشتم:
SELECT telno,called,duration,Code,price
FROM [Hot].[dbo].[INPrices] cross join [Olds].[dbo].[zir1mob] z
where z.called like CONVERT(varchar, INPrices.[Code]) + '%'



لطفا راهمایی کنید

ly.comeng
جمعه 31 مرداد 1393, 18:09 عصر
سلام دوستان
من دو جدول دارم که در یکی تلفن مقصد و در یکی کد کشور وجود دارد
تلفن call از نوع nvarchar کد کشور code از نوع bigint هست که در دو جدول مجزا هستند
حالا میخوام رکوردهایی رو که تلفن مقصدشون با کد مورد نظرم شروع میشه رو در بیارم که مبلغ تماس رو محاسبه کنم
نکته ای که داره اینه که مثلا برای یک کشور کدهای مختلف وجود داره مثلا برای شماره نمونه 31685735067 دو حالت پیش میاد :
چون در جدول کد کشور یه مبلغ برای کد 31 دارم و یک مبلغ برای کد 3168 که برای این مقصد باید کد 3168 به حساب بیاد اما نمیدونم چهطوری کد رو بنویسم؟!!
من الان همچین چیزی نوشتم:
SELECT telno,called,duration,Code,price
FROM [Hot].[dbo].[INPrices] cross join [Olds].[dbo].[zir1mob] z
where z.called like CONVERT(varchar, INPrices.[Code]) + '%'



لطفا راهمایی کنید

سلام مجدد
من منتظر راهنمایی شما هستم
سپاس

pezhvakco
جمعه 31 مرداد 1393, 20:29 عصر
سلام :
شرمنده ولی درست متوجه پرسش و ساختار جدول ها تون نشدم ؟

SELECT telno,called,duration,Code,price
کدام ستون برای کدام جدول است !

ولی تا جایی که فهمیدم، این طوری نمیشه :
شما باید شرط های دیگه ای هم داشته باشین و ساختار جدول ها و روش ذخیره داده ها شان رو هم تغییر بدید .

اگه می تونین در زمان جستجو یه شرط برای حداکثر طول رشته شماره تلفن و کد در نظر بگیرین
و یا شناسه ای برای طول فقط این شماره در همین ردیف داشته باشید

و یا ...

Davidd
جمعه 31 مرداد 1393, 22:46 عصر
سلام. این راه حل تست کن :
SELECT TOP 1 telno,called,duration,Code,price

FROM [Hot].[dbo].[INPrices] cross join [Olds].[dbo].[zir1mob] z
where z.called like CONVERT(varchar, INPrices.[Code]) + '%'
ORDER BY INPrices.[Code] DESC


البته اگه ساختار جدولها مشخص باشه بهتر میشه راهنمایی کرد.