|
There's nothing wrong with picking something like database design. You may want to look at database normalization, as well.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
"Not only do you continue to babble nonsense, you can't even correctly remember the nonsense you babbled just minutes ago." - Rob Graham
|
|
|
|
|
Security is always a hot topic.
|
|
|
|
|
The ART of index optimisation. Always a good topic, guaranteed to stir a DBAs juices.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Hello, I've googled far and wide and this is one of those rare things I just can't seem to find an answer for. Hopefully it's easy, but this is my first time ever playing with SQL Server CE and the answer eludes me.
All I want to do is reset my AutoIncrement column back to 1 when I clear the table. DBCC CHECKIDENT apparently is not supported in CE and I can't find a way to do it. Can anyone help?
Thanks much.
|
|
|
|
|
Try ALTER TABLE command like following:
ALTER TABLE TableName ALTER COLUMN ColumnName IDENTITY(1,1)
The need to optimize rises from a bad design.
My articles[ ^]
|
|
|
|
|
That worked brilliantly. Thank you! I should've thought of that from the start.
|
|
|
|
|
You're welcome.
The need to optimize rises from a bad design.
My articles[ ^]
|
|
|
|
|
select m_id from w_mat where ( w_mat.row_id in (Select prime_id from d_table where a_type=3 and o_type='XXX' and a_name='YYYY' and ( decode(REPLACE (TRANSLATE(TRIM(a_value),'-.0123456789', '000000000000'), '0', NULL), NULL,to_number(TRIM(a_value))) = 1 )) ) order by 1
If a_value encounters a non-numeric value, this query returns an error. Is there a way to modify the query to look for the particular value (i.e) 1 and ignore if it encounters any non-numeric value during the data fetch..
Regards,
Rane
|
|
|
|
|
You have several approaches to this, for example:
- use REGEXP_INSTR to find nonnumeric characters. Use this inside DECODE to make the decision if to convert or not
- create a small function which returns number. Inside this, use TO_NUMBER and catch the potential error and ignore it. In case of an error, return NULL (or whatever is desired)
Mika
The need to optimize rises from a bad design.
My articles[ ^]
|
|
|
|
|
CREATE OR REPLACE FUNCTION business_date (start_date DATE,
Days2Add NUMBER) RETURN DATE IS
Counter NATURAL := 0;
CurDate DATE := start_date;
DayNum POSITIVE;
SkipCntr NATURAL := 0;
BEGIN
WHILE Counter < Days2Add LOOP
CurDate := CurDate+1;
DayNum := TO_CHAR(CurDate, 'D');
IF DayNum BETWEEN 2 AND 6 THEN
Counter := Counter + 1;
ELSE
SkipCntr := SkipCntr + 1;
END IF;
END LOOP;
RETURN start_date + Counter + SkipCntr;
END business_date;
/
|
|
|
|
|
If you mean the usage it could be something like (or wherever you want to use it):
SELECT business_date(SYSDATE, 20) FROM DUAL
The need to optimize rises from a bad design.
My articles[ ^]
|
|
|
|
|
I have some question about design my database.
I want to design a database for a Advertisement web site.
there are some ads in my site such as:car,shirt,mobile,house,etc...
any ads saved by a member of site and belong to it.
any ads visited by some member .
any ads have it's property .for example car has model,color.mobile has weight,have cam,have tollbooths.
house has infrastructure ,stage and ....
in FUTURE many ads may add to my site with their specific properties.
i want know should i store all of my ads in my table or save them separately?
sepel
|
|
|
|
|
I would recommend you have a Member table and an Advertisement table on with a memberid field which is the member's id who uploaded the advert.
A VisitHistory table that contains the Advert id, member id and maybe datetime with foreign keys to the member and Advertisement tables.
A table with main categories like cars, mobiles, houses etc and then a table with subcategories with a parent id on it which will be the foreign key to the categories table that filters the subcategories for each category. That way you can have all these main categories with all their subcategories and easily add new ones if you want diffirent kinds of adds.
This is obviously high level without any indexes or anything but I hope you get the idea.
Hope this helps.
|
|
|
|
|
Use inheritance in your database, so you can add different subclasses of Advert later.
From our docs:
In this example, a ServiceProduct and a StockProduct table are defined. Both primary key columns
are also declared as foreign keys referencing the Product.Id column. These relationships guarantee
that for every ServiceProduct or StockProduct record there will be a corresponding Product record
with the same Id. Effectively these two tables inherit from the product table...
|
|
|
|
|
Hi,
I have the following query
SELECT iAccountID,iViolatorID,Count(iViolatorID) FROM tbTempQNotificationRequest (NOLOCK)
WHERE IsProcessed = 0 AND sdtStatusDate >= @sdtCurrentDate AND sdtStatusDate < @sdtCurrentDate + 1
GROUP BY iAccountID,vcGroupByValue,iViolatorID
Is it possible say when I group by the result set return
iAccount|iViolatorID|Count
1-------|1----------|3
2-------|2----------|5
I would like to have a fourth column say AccountNo and I want that it should contain comma seperated values of AccountNo against the group by columns.e.g.
iAccount|iViolatorID|Count|AcccountNo
1-------|1----------|3----|X12,X23,X34
2-------|2----------|5----|X45,X56,X65,X32,X98
I hope my question is clear and understandable
|
|
|
|
|
One way to do this is to create a function where you pass in an id that returns a comma seperated string of account numbers for that ID.
Then your query would look something like
SELECT iAccountID, iViolatorID, Count(iViolatorID), GetAccountNumbers(iViolatorID) AS AccountNos
FROM tbTempQNotificationRequest
This will slow down the query a bit but it'll work.
Hope this helps.
|
|
|
|
|
Hi,
Thanks for the answer. You know i could call a function but the thing is this query is a part of function being called from stored procedure. My scenario is complex and calling another function will effect the procedure performance further as currently procedure takes 5 seconds to execute. So I was looking for something if we could accomplish it through SQL. Though thanks anyways.
Regards,
|
|
|
|
|
I have FirstName and LastName in one of my table. I am displaying as FirstName + LastName. I would like to apply LIKE to the FirstName + LastName. This is what I have tried.
SELECT
(FirstName + LastName) AS DisplayName
FROM
MyTable
WHERE DisplayName LIKE '%Name%' Then I tried
SELECT
(FirstName + LastName) as DisplayName
FROM
MyTable
WHERE
FirstName + LastName LIKE '%Name%'
OR
SELECT
(FirstName + LastName) as DisplayName
FROM
MyTable
WHERE
FirstName LIKE '%Name%' OR LastName LIKE '%Name%' These two worked, but I am not sure that this is the correct approach. Is there a better way to do this?
|
|
|
|
|
I would not have thought of using the 2nd option.
The 3rd one is the most appropriate if only because the where clause will take advantage of any indexes where the concatenated string will not. This may be negated by using the like operator but I'm not sure.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Mycroft Holmes wrote: because the where clause will take advantage of any indexes where the concatenated string will not
Yeah, I see the good point here. Thanks for the help.
|
|
|
|
|
The third option is definitely the best because the second will create a new string each comparison. If you're only going to be doing a simple '%Name%' check, then go with the third.
|
|
|
|
|
Hello,
I have a column name DollarAmount in the Excel Sheet. The format of the cells in this column have currency format with 3 decimal places. It means the data is somewhat this way: $15.900, $22.634, .......
I have to load this data into the SQL Server table using SSIS.
I tried to move into a table by giving datatype Currency and in the DataConversion Transformation also I converted the excel column into Currency Format. I had to use DataConversion as I have many other columns also.
Now, my question is that I am able to get the data as 15.900, but the $ sign is missing. It is necessary for me to have a dollar sign also, but even after trying few datatypes in SQL Server table as well as Data Conversion Transformation in SSIS, I am not able to get the $ sign also passed from my excel spreadsheet.
I guess it is not that tough, but I am not getting the right spot. Can anyone of you help me achieve this?
Thank you.
|
|
|
|
|
I'm not sure if this is your actual problem but as far as I know money and smallmoney datatypes in SQL Server store the numerical value for the money without currency symbol. SQL Server has several currency symbols it understands in strings (such as '$15900') and knows how to remove it from the string if converted to money.
If you want to get the currency symbol back when you fetch data from the database, you should cast the value of a money field to varchar and add the relevant currency symbol.
The need to optimize rises from a bad design.
My articles[ ^]
|
|
|
|
|
I'm using VB.Net, ADO.Net and MySQL. I want to be able to delete a row in one dataset, sourced from a database table, then detect the deleted row, merge it into a dataset sourced from a table (with identical schema in another (Archive) database. I have no problems otherwise with updating tables but any approach I try to this question doesn't work. I'm sure it's really very simple but.............
|
|
|
|
|
What's the exact problem you have (perhaps post some code explaining the problem area)?
Are you getting some errors or do you have a piece of code which doesn't do what's expected?
The need to optimize rises from a bad design.
My articles[ ^]
|
|
|
|