PDA

View Full Version : مشکل در گزارش گیری



amehrabi
یک شنبه 24 مهر 1384, 10:35 صبح
سلام
من یک بانک دارم که اطلاعات قطعات و کاربران کامپیوترهای یک شرکت را ذخیره میکند . جدولهای بانک من به صورت زیر هستند :
جدول کامپیوتر(کد کامپیوتر،نام کاربر،شمارهIP )
جدول قطعات کامپیوتر(کد کامپیوتر،نام قطعه،مدل)
حالا می خواهم قطعات مربوط به همه کامپیوترها را در یک گزارش ببینم به صورتی که مشخصات قطعات هرکامپیوتر در یک سطر و در جلوی کد آن درج شود و بتوان از آن پرینت گرفت . لطفا مرا راهنمایی کنید .

Identifier
یک شنبه 24 مهر 1384, 11:31 صبح
از طریق view می تونی این کار و انجام بدی

amehrabi
یک شنبه 24 مهر 1384, 12:01 عصر
چطوری میشه این کار رو انجام داد؟
من دستور SQL اون رو می خواهم .

Identifier
یک شنبه 24 مهر 1384, 12:23 عصر
شما وقتی یک view ایجاد میکنی پایین آن میتونین از کد ایجاد شده استفاده کنید و در هر جایی استفاده کنید
البته درصورتی این به شما جواب میده که کد کامپیوتر در جدول دوم foregin key باشه

amehrabi
یک شنبه 24 مهر 1384, 12:41 عصر
کد کامپیوتر foreign key هست ولی من می خواهم قطعات همه کامپیوترها را باهم ببینم و جلوی هر کد کامپیوتر مثلا یک ستون باشد باعنوان cpu که در آن مدل cpu باشد ، یک ستون با عنوان ram و...

shahroozj
یک شنبه 24 مهر 1384, 12:53 عصر
کافی است دو جدول را Join کنید :




select Computer.* , Parts.*
from Computer Inner Join Parts
On Computer.CompID = Parts.CompID


اسامی جداول و فیلدها را به نسبت پروژه خودت تغییر بده

amehrabi
دوشنبه 25 مهر 1384, 07:05 صبح
این دستور SQL قطعات مربوط به یک کامپیوتر را زیرهم نشان می دهد در صورتیکه من می خواهم همه قطعات یک کامپیوتر را در یک سطر و قطعات کامپیوتر بعدی را در سطر بعد و... نمایش دهد. به طور مثال اگر یک کامپیوتر با کد 1 داشته باشیم در یک ستون گزارش کد آن ، در ستونی با عنوان CPU مشخصات cpu آن و در ستون دیگری مشخصات RAM و... رانمایش دهد و این کار در مورد همه کامپیوترها تکرار شود به طوری که در یک لیست ، مشخصات همه کامپیوترها دیده شود .

Identifier
دوشنبه 25 مهر 1384, 08:05 صبح
فکر نمی کنم به این شکلی که شما می فرمائین انجام دادنش به این راحتیا امکان پذبر باشه فرض کنید تمام کامپیوتر ها مقدار فطعات و انواعشون متفاوت باشه تصور او و کردید که چه گرید عظیم به وجود می یاد فکر می کنم باید از تکنیک دیگری برای این کار ایتفاده کنید
موفق باشید

mRizvandi
دوشنبه 25 مهر 1384, 08:47 صبح
سلام

اگه از این استفاده بشه چی؟



SELECT Computer.* , Parts.*
FROM Computer , Parts
WHERE Computer.CompID = Parts.CompID

:چشمک:

Identifier
دوشنبه 25 مهر 1384, 09:03 صبح
بازم جوابگوی مشکل دوستمون نیست در اصل من فکر میکنم الگوریتم کار درست طراحی نشده

amehrabi
سه شنبه 26 مهر 1384, 11:20 صبح
مشکل من در access با استفاده از Crosstob Query حل شد . کد SQL آن به صورت زیر است . اما وقتی این کد را در SQL Server می خواهم اجرا کنم به من پیغامLine1: invalid syntax near dbo می دهد .

TRANSFORM First(Query1.device_DESC) AS [The Value]

SELECT Query1.MKA_Code, Query1.Org, Query1.Location

FROM Query1

GROUP BY Query1.MKA_Code, Query1.Org, Query1.Location

PIVOT Query1.Device_Name;

amehrabi
چهارشنبه 27 مهر 1384, 07:01 صبح
من این مشکل رو acces با استفاده از Crosstob Query حل کردم که کد دستور SQL اون رو اینجا میذارم . اما این دستور وقتی در SQL Server استفاده میشه پیغام Line1:Invalid syntax near dbo به من میده


TRANSFORM First(View_Crosstob.device_DESC) AS [The Value]
SELECT View_Crosstob.Mka_Code, View_Crosstob.Per_Id, View_Crosstob.Name, View_Crosstob.Family, View_Crosstob.Org_Name, View_Crosstob.location
FROM View_Crosstob
GROUP BY View_Crosstob.Mka_Code, View_Crosstob.Per_Id, View_Crosstob.Name, View_Crosstob.Family, View_Crosstob.Org_Name, View_Crosstob.location
PIVOT View_Crosstob.Device_Name;

amehrabi
یک شنبه 01 آبان 1384, 08:28 صبح
هیچ کس نیست به داد ما برسه؟