|
I need to integrate the 2 results of the following query
select suppliers.sname, count(*) i from failures,devices,suppliers where devices.suppid=suppliers.suppid and failures.deviceid=devices.deviceid group by suppliers.sname
output:
sname i
***** **
select suppliers.sname, count(*) j from devices,suppliers where devices.suppid=suppliers.suppid group by suppliers.sname
output:
sname j
***** **
I need the output to be in the following form:
sname i j
***** ** **
Please help. Thanks
|
|
|
|
|
You can put them in subqueries and join the result set of the subqueries together. Like this:
SELECT supplier.sname, failures.count, supplier.count
FROM
(
select suppliers.sname, count(*) AS count
from failures,devices,suppliers
where devices.suppid=suppliers.suppid
and failures.deviceid=devices.deviceid
group by suppliers.sname
) AS supplier
INNER JOIN
(
select suppliers.sname, count(*) AS count
from devices,suppliers
where devices.suppid=suppliers.suppid
group by suppliers.sname
) AS failure ON supplier.sname = failure.sname
The above query can be could be optimised further, but I wanted to show as much of your original SQL as possible so you can see how it fits together. It also assumes that sname is unique.
Does this help?
"On two occasions, I have been asked [by members of Parliament], 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able to rightly apprehend the kind of confusion of ideas that could provoke such a question."
--Charles Babbage (1791-1871)
My: Website | Blog
|
|
|
|
|
Colin Angus Mackay wrote: Does this help?
Thank you , Mr. Colin, The SQL query provided by you is working fine. That solves my problem.
|
|
|
|
|
But wait !! inner join needs both queries to have common records existent for display.
Replace Inner Join with Full Outer Join so that even of any record doesnt have a matching record in other query, still it comes in display.
Best Regards,
Darpan Gogia
|
|
|
|
|
Thanks.
The failure count is returning null value instead of that i need to display it as numeric value 0.
|
|
|
|
|
you can use the coalesce function to get 0's.
|
|
|
|
|
Is the following is the format of coalesce?
coalesce(colname,0)
Please tell me how to display decimal value for the following query?
select 1/2
Thanks
|
|
|
|
|
yes this is correct form of coalesce.
in the second question, you are performing calculation on integer so it returns integer. you need to cast/convert the result to decimal/float to get the decimal value of the query as:
CAST(1/2 as double), convert check the Books online for syntax help!!
Best Regards,
Darpan Gogia
|
|
|
|
|
Thanks
The CAST(1/2 as double) is displaying an error
I've tried CAST(1 as float)/CAST(2 as float) it is working.
Thank you very much again.
|
|
|
|
|
Hi,
The following code is displaying "[Microsoft][ODBC SQL Server Driver]Syntax error or access violation" error
SELECT failure.locid,device.count [devices],failure.count [failures]<br />
FROM<br />
{<br />
select locality.locid,count(*) from allotment,locality where allotment.locid=locality.locid group by locality.locid<br />
} AS device<br />
FULL OUTER JOIN<br />
{<br />
select locid,count(deviceid) from failures group by locid<br />
} AS failure ON device.locid = failure.locid
device is used to find number of device in a particular locality
failure is to find the number of failures in the particular location
All localities are stored in locality table. the alloted devices are in allotment table, failures are in failures table
Thanks
-- modified at 9:43 Wednesday 19th April, 2006
|
|
|
|
|
check the syntax in query as well as your servers.
Example, dont use reserved words as "count" in your query directly as "device.count [devices],"
Most probably you will end up getting some silly mistake with your query, or else with permissions.
|
|
|
|
|
There is no problem with the server and the permissions. Please help same error.
SELECT failure.locid,device.count,failure.count
FROM
{
select locality.locid,count(*) AS count
from allotment,locality
where allotment.locid=locality.locid
group by locality.locid
} AS device
FULL OUTER JOIN
{
select locid,count(deviceid) AS count
from failures
group by locid
} AS failure ON device.locid = failure.locid
|
|
|
|
|
There is a syntax error in the query. I have to use normal brackets () instead of braces {}
Thanks
|
|
|
|
|
I need to utilize the text datatype, as i'm storing a very large amount of text data in a table. however, the designer keeps defaulting to a length of '16', and will not go any bigger. Am I doing something wrong?
I am at this time attempting to hard code data to the table as I'm archiving a lot of information, then i'll build the .aspx pages to keep it updated with the current data. If this doesn't work, i'll have to create 5 or 6 varchar rows, and i would rather avoid that. this field will be searchable eventually.
Thanks for any help you can offer.
karinb
|
|
|
|
|
karinb wrote: he designer keeps defaulting to a length of '16'
Although that is the length set by the designer, it is not the length allowed for data storage. Try storing your data...you will see that it fits just fine.
SQL Server Booksonline
Unless the text in row option is specified, text, ntext, or image strings are large character or binary strings (up to 2 gigabytes) stored outside a data row. The data row contains only a 16-byte text pointer that points to the root node of a tree built of internal pointers that map the pages in which the string fragments are stored. For more information about the storage of text, ntext, or image strings, see text, ntext, and image Data.
----------
There go my people. I must find out where they are going so I can lead them.
- Alexander Ledru-Rollin
|
|
|
|
|
You don't have the "Text In Row" option turned on do you?
SQL Server Booksonline
You enable the text in row option for a table by using sp_tableoption . With the text in row option set to ON, Microsoft® SQL Server 2000 stores text, ntext, or image strings directly in the data row
----------
There go my people. I must find out where they are going so I can lead them.
- Alexander Ledru-Rollin
|
|
|
|
|
please explain how to do that, i do not know where i would look to enable that feature. Thank you.
karinb
|
|
|
|
|
You do not want it on, you want it off.
Have you actually tried to store your data? Do you receive an error?
Try this from the query anazyzer:
sp_tableoption N'TableName', 'text in row', 'OFF'
----------
There go my people. I must find out where they are going so I can lead them.
- Alexander Ledru-Rollin
|
|
|
|
|
to answer this, no, i don't get an error at all, just am not able to put any data into the field if it is set for 'text'. the words, Long Text, are in the field instead. Is this just some sort of link to the actual data? how do I see if it is in there? I am actually copying/pasting text from a document and it includes some html tags. would that cause a problem?
thank you.
karinb
|
|
|
|
|
karinb wrote: I am actually copying/pasting text from a document and it includes some html tags. would that cause a problem?
Yes. Some of the characters in the html are probably causing the problem. Try using the query analyzer, or some other tool, to get/set the data. The enterprise manager isn't a very good tool for data manipulation.
Gotta go for the day. Bye.
----------
There go my people. I must find out where they are going so I can lead them.
- Alexander Ledru-Rollin
|
|
|
|
|
I disabled the 'text in row'. I reset my field to 'text', and the length changed to '16'. Now, in the field when i open the table, this <long text=""> is in the box, and i am unable to enter my data into the field.
i am confused, why wouldn't it allow me to declare text and then put all my data in the row? i thought text held over 2bill chars?
karinb
-- modified at 17:45 Monday 17th April, 2006
|
|
|
|
|
In a database management project ,we have used Oracle at back-end and VB.Net at front-end.
In Oracle ,we used object-oriented features and created nested tables.Now we want to accesss those nested tables using ADO.Net .We are in search of answers of following questions:
1.Does Dataset class of ADO.Net support nested tables ?
2.If yes,can XML be used to specify schema of nested dataset ?
3.If not,how to manipulate nested tables of Oracle in ADO.Net?
As a temporary solution , we are retrieving main table and child table in two different tables;but this mechanism of database handling is affecting preformance of project badly.So we are in need of some other efficient solution.We will be thankful for your response if you will be able to help us to get out of the problem .Please reply as early as possible.
kam_ps
|
|
|
|
|
Not having used Oracle for a very long time this concept of nested tables sounds very much like a standard one-to-many relationship with the nested table being at the many end of the join. 1 parent row to many (nested) child rows.
kam_ps wrote: 1.Does Dataset class of ADO.Net support nested tables ?
It depends on what a nested table is. If it can be described as I have done above then yes it can support it.
kam_ps wrote: 3.If not,how to manipulate nested tables of Oracle in ADO.Net?
So long as you can access these "nested" tables through an SQL statement then you can pretty much do anything you like. All ADO.NET does is pass SQL Statements around and receive result sets. The Oracle data provider will handle that for you.
"On two occasions, I have been asked [by members of Parliament], 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able to rightly apprehend the kind of confusion of ideas that could provoke such a question."
--Charles Babbage (1791-1871)
My: Website | Blog
|
|
|
|
|
There is nothing like nested table in ado.net. But, the solution is there where the relational features of dataset comes in picture.
fetch both the tables separately and add a foreign key relation between them. Then using methods like getchildrows, etc, you can get ur prob solved.
Best Regards,
Darpan Gogia
|
|
|
|
|
Darpan Gogia wrote: There is nothing like nested table in ado.net. But, the solution is there where the relational features of dataset comes in picture.
Isn't that what I suggested?
"On two occasions, I have been asked [by members of Parliament], 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able to rightly apprehend the kind of confusion of ideas that could provoke such a question."
--Charles Babbage (1791-1871)
My: Website | Blog
|
|
|
|