You are here: Query help needed « MsSQL Server « IT news, forums, messages
Query help needed

Posted by sephent on 03/14/07 15:24

I'm pretty new to SQL and querying, and I'm not sure if this is the
correct group to post this to, but hopefully someone can point me in
the right direction.

I have the following query:

SELECT Distinct dbo.DLFolders.FolderCode,
dbo.PropertyCharValues.ParentId,
dbo.PropertyCharValues.DocumentTypePropertyId,
dbo.PropertyCharValues.PropertyCharValue,
dbo.PropertyDateValues.DocumentTypePropertyId AS Expr1,
dbo.PropertyDateValues.PropertyDateValue
FROM dbo.PropertyDateValues INNER JOIN
dbo.PropertyCharValues ON
dbo.PropertyDateValues.ParentId = dbo.PropertyCharValues.ParentId
INNER JOIN
dbo.Documents ON dbo.PropertyCharValues.ParentId
= dbo.Documents.DocumentId INNER JOIN
dbo.DLFolders ON dbo.Documents.DLFolderID =
dbo.DLFolders.FolderID
WHERE (dbo.PropertyDateValues.ParentId = '195203')

Which yields these results (except the far right column, which I've
added manually to describe what the PropertyCharValue is. I didn't
bother with the PropertyDateValues, but they are basically Invoice
Date, Post Date, and Check Date):

FolderCode ParentId DocumentTypePropertyId PropertyCharValue Expr1
PropertyDateValue
428 195203 1 19 4 2006-06-03 00:00:00.000 Vendor Number
428 195203 1 19 6 2006-07-05 00:00:00.000 Vendor Number
428 195203 1 19 93 2006-06-30 00:00:00.000 Vendor Number
428 195203 2 Bhellington Corporation 4 2006-06-03 00:00:00.000 Vendor
Name
428 195203 2 Bhellington Corporation 6 2006-07-05 00:00:00.000 Vendor
Name
428 195203 2 Bhellington Corporation 93 2006-06-30 00:00:00.000
Vendor Name
428 195203 3 68001-0421381 4 2006-06-03 00:00:00.000 Invoice Number
428 195203 3 68001-0421381 6 2006-07-05 00:00:00.000 Invoice Number
428 195203 3 68001-0421381 93 2006-06-30 00:00:00.000 Invoice Number
428 195203 5 0000000052 4 2006-06-03 00:00:00.000 Voucher Number
428 195203 5 0000000052 6 2006-07-05 00:00:00.000 Voucher Number
428 195203 5 0000000052 93 2006-06-30 00:00:00.000 Voucher Number
428 195203 7 0000010027 4 2006-06-03 00:00:00.000 Check Number
428 195203 7 0000010027 6 2006-07-05 00:00:00.000 Check Number
428 195203 7 0000010027 93 2006-06-30 00:00:00.000 Check Number
428 195203 22 428 4 2006-06-03 00:00:00.000 Company Code
428 195203 22 428 6 2006-07-05 00:00:00.000 Company Code
428 195203 22 428 93 2006-06-30 00:00:00.000 Company Code
428 195203 23 3908.78 4 2006-06-03 00:00:00.000 Amount
428 195203 23 3908.78 6 2006-07-05 00:00:00.000 Amount
428 195203 23 3908.78 93 2006-06-30 00:00:00.000 Amount
428 195203 24 APVO-0000015 4 2006-06-03 00:00:00.000 Batch ID
428 195203 24 APVO-0000015 6 2006-07-05 00:00:00.000 Batch ID
428 195203 24 APVO-0000015 93 2006-06-30 00:00:00.000 Batch ID
428 195203 25 040575000 4 2006-06-03 00:00:00.000 GL Accounts
428 195203 25 040575000 6 2006-07-05 00:00:00.000 GL Accounts
428 195203 25 040575000 93 2006-06-30 00:00:00.000 GL Accounts
428 195203 25 040576000 4 2006-06-03 00:00:00.000 GL Accounts
428 195203 25 040576000 6 2006-07-05 00:00:00.000 GL Accounts
428 195203 25 040576000 93 2006-06-30 00:00:00.000 GL Accounts
428 195203 123 428 4 2006-06-03 00:00:00.000 Target Company
428 195203 123 428 6 2006-07-05 00:00:00.000 Target Company
428 195203 123 428 93 2006-06-30 00:00:00.000 Target Company


As you can see, the results triplicate the PropertyCharValue items and
multiply by 11 the PropertyDateValues because they are on different
tables and because I don't know what I'm doing.

I would like to see a result with columns like this:

FolderCode ParentID VendorNum VendorName InvNum VouchNum
CompCode Amount BatchID GLAccounts GLAccounts(2) Target
Company InvDate PostDate CheckDate


To that end, I tried the following query as an attempt in that
direction:


Declare @IDNum int
Set @IDNum = '195203'
SELECT distinct dbo.DLFolders.FolderCode,
dbo.PropertyCharValues.ParentId,
(Select PropertyCharValue from PropertyCharValues Where
ParentId = '195203' and DocumentTypePropertyId= '5') as VouchNum,
(Select PropertyCharValue from PropertyCharValues Where
ParentID = '195203' and DocumentTypePropertyID= '25') as GLNumber,
--dbo.PropertyCharValues.DocumentTypePropertyId,
dbo.PropertyCharValues.PropertyCharValue,
(SELECT PropertyDateValue
FROM dbo.PropertyDateValues
WHERE ParentId = '195203' AND
DocumentTypePropertyID = '4') AS InvoiceDate,
(SELECT PropertyDateValue
FROM dbo.PropertyDateValues
WHERE ParentId = '195203' AND
DocumentTypePropertyID = '93') AS PostDate,
(SELECT PropertyDateValue
FROM dbo.PropertyDateValues
WHERE ParentId = '195203' AND
DocumentTypePropertyID = '6') AS CheckDate
FROM dbo.PropertyDateValues INNER JOIN
dbo.PropertyCharValues ON
dbo.PropertyDateValues.ParentId = dbo.PropertyCharValues.ParentId
INNER JOIN
dbo.Documents ON dbo.PropertyCharValues.ParentId
= dbo.Documents.DocumentId INNER JOIN
dbo.DLFolders ON dbo.Documents.DLFolderID =
dbo.DLFolders.FolderID
WHERE (dbo.PropertyDateValues.ParentId = '195203')



And I discovered that a subquery can't have more than one result.

I'm not sure what avenues to try next. Any suggestions?

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация